0
所以我使用jansson
庫,我想設置一個值: json_object_set_new(event,「error_code」,json_integer(response-> error_code));C - 複製整數
問題是,我需要free
response
結構,但仍然使用我在json_object_set_new
中設置的值。
我應該從response->error_code
複製價值,我該怎麼做?
一些背景:
plugin_response: {
if(!response->message && response->error_code == 0) {
response->error_code = JANUS_AUDIOBRIDGE_ERROR_UNKNOWN_ERROR;
if(response->error_cause == NULL) {
response->error_cause = g_strdup_printf("%s", "Invalid response");
}
}
json_t *event = json_object();
if(!response->message && response->error_code != 0) {
/* Prepare JSON error event */
json_object_set_new(event, "audiobridge", json_string("event"));
json_object_set_new(event, "error_code", json_integer(response->error_code));
json_object_set_new(event, "error", json_string(response->error_cause));
} else {
event = json_deep_copy(response->message);
}
if(root != NULL)
json_decref(root);
if(jsep != NULL)
json_decref(jsep);
g_free(transaction);
g_free(response);
return janus_plugin_result_new(JANUS_PLUGIN_OK, NULL, event);
}
編輯:我也使用GLib的,所以如果有此一記漂亮的方法,我洗耳恭聽。