色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c 解析多層結構的json

劉姿婷1年前9瀏覽0評論

C語言解析JSON數據是一項重要的技能,特別是對于那些處理數據的程序員。多層結構的JSON數據可能會更加復雜,但是只要你知道怎樣解析它們,一切都會變得很輕松。

下面我們來看看怎樣解析一個多層結構的JSON數據。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
int main() {
char* json_string = "{\"name\":\"John\",\"age\":30,\"address\":{\"city\":\"New York\",\"state\":\"NY\",\"zipcode\":\"10001\"},\"phone\":[{\"type\":\"home\",\"number\":\"123-456-7890\"},{\"type\":\"office\",\"number\":\"987-654-3210\"}]}";
json_error_t error;
json_t* root = json_loads(json_string, 0, &error);
if (!root) {
printf("error: on line %d: %s\n", error.line, error.text);
return -1;
}
json_t* name = json_object_get(root, "name");
printf("Name: %s\n", json_string_value(name));
json_t* age = json_object_get(root, "age");
printf("Age: %d\n", json_integer_value(age));
json_t* address = json_object_get(root, "address");
json_t* city = json_object_get(address, "city");
printf("City: %s\n", json_string_value(city));
json_t* phone = json_object_get(root, "phone");
for (int i = 0; i < json_array_size(phone); i++) {
json_t* phone_item = json_array_get(phone, i);
json_t* type = json_object_get(phone_item, "type");
json_t* number = json_object_get(phone_item, "number");
printf("Phone %d - Type: %s, Number: %s\n", i+1, json_string_value(type), json_string_value(number));
}
json_decref(root);
return 0;
}

在這個示例中,我們使用了開源的JSON庫jansson來解析JSON數據。我們首先定義了一個JSON字符串,它包含一個名為John的人物的基本信息,包括名字、年齡、地址和電話。然后,我們加載并解析JSON數據,訪問根節點和所有子節點。這個示例中還包括了循環遍歷JSON數組的用法。

使用C語言解析JSON數據可能會有點棘手,但是只要你知道基本的語法和概念,就可以輕松地解析多層結構的JSON數據。