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()做到了! –