淘先锋技术网

首页 1 2 3 4 5 6 7

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。

因为其简洁明了的结构,被广泛用于互联网上的数据传输和存储。

在C语言中,我们可以使用第三方库来解析JSON字符串数组。

#include <stdio.h>
#include <jansson.h>
int main() {
char *json_string = "[{\"name\":\"Peter\", \"age\":25}, {\"name\":\"Jack\", \"age\":30}]";
json_t *root;
json_error_t error;
root = json_loads(json_string, 0, &error);
if(!root) {
printf("json error on line %d: %s\n", error.line, error.text);
return 1;
}
int i;
for(i = 0; i < json_array_size(root); i ++) {
json_t *data, *name, *age;
const char *name_str;
int age_int;
data = json_array_get(root, i);
name = json_object_get(data, "name");
age = json_object_get(data, "age");
name_str = json_string_value(name);
age_int = json_integer_value(age);
printf("name: %s, age: %d\n", name_str, age_int);
}
json_decref(root);
return 0;
}

在上述代码中,我们使用了jansson库来解析JSON字符串数组。首先,我们声明了一个JSON字符串,该字符串是由两个对象组成的数组。

然后,我们使用json_loads函数将JSON字符串加载到内存中,并按照格式要求进行解析。如果出现错误,该函数将返回NULL并将错误信息存储在错误对象中。

接下来,我们遍历JSON数组中的所有对象,并使用json_object_get函数获取每个对象中的属性。由于JSON中的数据类型是不确定的,因此我们将属性值转换为字符串或整数。

最后,我们使用json_decref函数释放内存。

需要注意的是,该代码仅适用于解析JSON字符串数组中的简单对象。如果JSON字符串数组中的对象结构更加复杂,需要进行更多的判断和处理。