在C语言中,访问JSON对象数组的元素是一种常见的操作。下面我们简单介绍一下如何通过C语言访问JSON对象数组元素。
// 引入相应的头文件 #include <stdio.h> #include <string.h> #include <jansson.h> int main() { // 初始化JSON数据 char *jsonstr = "[{\"name\":\"Peter\", \"age\":20}, {\"name\":\"John\", \"age\":25},{\"name\":\"Marry\", \"age\":30}]"; // 解析JSON数据 json_t *root; json_error_t error; root = json_loads(jsonstr, 0, &error); // 获取数组长度 int array_length = json_array_size(root); // 遍历数组元素 for(int i = 0; i < array_length; i++) { json_t *node = json_array_get(root, i); json_t *name_node = json_object_get(node, "name"); json_t *age_node = json_object_get(node, "age"); const char *name = json_string_value(name_node); int age = json_integer_value(age_node); printf("name:%s age:%d\n", name, age); } // 释放JSON对象内存 json_decref(root); return 0; }
以上代码演示了如何通过Jansson解析JSON字符串,并遍历数组元素,输出每个元素的name和age属性。
在代码中,使用了Jansson第三方库进行解析JSON字符以及访问JSON对象数组元素的操作。在具体操作时,我们先使用json_loads函数将JSON字符串解析成json_t对象,然后使用json_array_size函数获取数组元素个数,最后使用json_array_get和json_object_get函数获取数组元素的name和age属性。
需要注意的是,如果JSON数组中的元素类型不同,那么我们需要通过json_typeof函数进行判断元素的类型。