1
我遍歷json對象數組並將特定元素放入另一個。將對象從一個json數組複製到另一個
char *jsonString = getList(); // reads file and returns json string
json_error_t err;
json_t *jsonArr = json_loads(jsonString , 0 , &err);
int index = 0;
json_t *value = NULL;
json_t *resultArr = malloc(sizeof(json_t) * 100);
json_array_foreach(jsonArr , index , value)
{
if(strcmp(json_string_value(json_object_get(value , "citizenship")) , key) == 0)
{
json_array_append_new(resultArr , value);
}
}
printf("Array size : %i\n" , (int)json_array_size(resultArr));
char * result = json_dumps(resultArr , JSON_INDENT(2));
json_decref(jsonArr);
json_decref(resultArr);
return result;
我相信,我有3個要素的匹配搜索,這是由if語句的條目數真實判斷,雖然printf()的循環後說,這個新創建的數組是空的。是否有任何明顯的問題可以指出?我正在使用jansson庫。
您使用'json_array_append_new'與'json_array_append'的任何原因?另外,檢查你的返回值,像malloc和append這樣的調用,確保沒有任何錯誤。 – Kcvin
此外,使用'json_t * resultArr = json_array();' – Kcvin
非常感謝,json_array()做到了! –