还有其他的方法吗 前提是不确定json里面的参数量,名称等
时间: 2024-02-24 11:55:16 浏览: 67
如果不确定JSON中的参数量和名称,可以使用Jansson库中的`json_object_iter()`和`json_object_iter_next()`函数来迭代JSON对象中的键值对。示例代码如下:
```
json_t *json_obj = json_object();
json_object_set_new(json_obj, "key1", json_string("value1"));
json_object_set_new(json_obj, "key2", json_integer(123));
const char *key;
json_t *value;
json_object_foreach(json_obj, key, value) {
const char *str_value = json_string_value(value);
int int_value = json_integer_value(value);
printf("key: %s, value: %s\n", key, str_value);
printf("key: %s, value: %d\n", key, int_value);
}
```
上述代码中,我们首先创建了一个名为`json_obj`的JSON对象,并向其添加了两个键值对。然后,我们使用`json_object_foreach()`函数迭代JSON对象中的所有键值对,并获取它们的键名和键值。在迭代过程中,我们可以使用`json_string_value()`函数获取字符串类型的键值,使用`json_integer_value()`函数获取整数类型的键值。
需要注意的是,`json_object_foreach()`函数的参数中,第一个参数是要迭代的JSON对象,第二个和第三个参数分别是用于存储键名和键值的指针。在迭代过程中,`json_object_foreach()`函数会自动将指针指向下一个键值对。
阅读全文