淘先锋技术网

首页 1 2 3 4 5 6 7

在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函数进行判断元素的类型。