淘先锋技术网

首页 1 2 3 4 5 6 7

在C语言中,解析JSON嵌套类型是非常常见的操作。JSON嵌套类型的实现方式是,一个JSON类型可以包含多个嵌套类型,例如一个数组内部可以包含多个对象。下面我们来看看如何在C程序中解析JSON中的嵌套类型。

{
"name": "John",
"age": 30,
"cars": [
{
"name": "Ford",
"models": [
"Fiesta",
"Focus",
"Mustang"
]
},
{
"name": "BMW",
"models": [
"320",
"X3",
"X5"
]
},
{
"name": "Fiat",
"models": [
"500",
"Panda"
]
}
]
}

假设我们有上述JSON数据,我们可以使用一个C程序来解析数据。简单的C程序如下:

#include <stdio.h>
#include <json-c/json.h>
int main() {
const char* json_string = "...";   // 这里是我们需要解析的JSON字符串
json_object* jobj = json_tokener_parse(json_string);
// 获取JSON字符串中的"cars"字段
json_object* cars = json_object_object_get(jobj, "cars");
int i;
for (i = 0; i< json_object_array_length(cars); i++) {
json_object* car = json_object_array_get_idx(cars, i);
// 获取"car"对象中的"name"字段
json_object* name = json_object_object_get(car, "name");
// 获取"car"对象中的"models"字段
json_object* models = json_object_object_get(car, "models");
printf("Car: %s\n", json_object_get_string(name));
printf("Models:\n");
int j;
for (j = 0; j< json_object_array_length(models); j++) {
json_object* model = json_object_array_get_idx(models, j);
printf("%s\n", json_object_get_string(model));
}
}
return 0;
}

上述程序可以解析JSON字符串并获取其中的"cars"字段。"cars"字段是一个数组类型,我们可以使用json_object_array_length函数获得该数组的长度,然后使用json_object_array_get_idx函数按索引获取数组元素。获取到数组元素后,我们可以使用json_object_object_get函数获取对象字段的值。

以上就是使用C语言解析JSON嵌套类型的简单实现。有了这种方法,我们可以轻松地解析JSON数据并获取其中的嵌套类型。