libjson-c:json\u object\u object\u foreach分段错误

libjson-c:json\u object\u object\u foreach分段错误,c,jsonobject,C,Jsonobject,我是在Linux中使用libjson-c的新手。 我的代码如下: json_object* new_obj = json_tokener_parse("[{\"abc\": \"123\"}, {\"xyz\": \"456\"}]"); json_object_object_foreach(new_obj, key, val) { //Do nothing } 但是遇到了分割错误 除此之外,下面的代码运行良好: json_object* my_object = json_object

我是在Linux中使用libjson-c的新手。 我的代码如下:

json_object* new_obj = json_tokener_parse("[{\"abc\": \"123\"}, {\"xyz\": \"456\"}]");
json_object_object_foreach(new_obj, key, val)
{
    //Do nothing
}
但是遇到了分割错误

除此之外,下面的代码运行良好:

json_object* my_object = json_object_new_object();
json_object_object_add(my_object, "abc", json_object_new_int(12));
json_object_object_add(my_object, "foo", json_object_new_string("bar"));
json_object_object_add(my_object, "bool0", json_object_new_boolean(0));
json_object_object_add(my_object, "bool1", json_object_new_boolean(1));
json_object_object_add(my_object, "baz", json_object_new_string("bang"));

printf("my_object=\n");
json_object_object_foreach(new_obj, key, val)
{
    printf("\t%s: %s\n", key, json_object_to_json_string(val));
}
请解释一下为什么? 提前谢谢

它在json\u object\u object\u foreach行崩溃


我只是检查一下,json\u object\u object\u foreach只是应用于json对象,而不是数组。

传递给json\u tokener\u parse的字符串是错误的

[{\abc\:\123\},{\xyz\:\456\}]

您正在使用json对象数组,因此请提供对象数组的键名

关键字名称:[ { .. : .. },

{ .. : .. } ]

你从哪里得到的碰撞?它发生在代码的哪一行?在调试器中运行以查找,还可以查找所涉及变量的值,如尝试取消引用空指针。