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

c 怎么解析不同json

呂致盈1年前8瀏覽0評論

在C語言中,如何解析不同的JSON格式呢? 首先,需要有一個解析JSON的庫。

#include <stdio.h>
#include <jansson.h>
int main() {
// 解析JSON字符串
char *json_str = "{\"name\":\"張三\",\"age\":18,\"sex\":\"male\"}";
json_error_t error;
json_t *root = json_loads(json_str, 0, &error);
if (!root) {
fprintf(stderr, "json error: on line %d: %s\n", error.line, error.text);
return 1;
}
// 獲取JSON對象中的值
char *name = json_string_value(json_object_get(root, "name"));
int age = json_integer_value(json_object_get(root, "age"));
char *sex = json_string_value(json_object_get(root, "sex"));
// 輸出結果
printf("name:%s age:%d sex:%s\n", name, age, sex);
// 釋放對象
json_decref(root);
return 0;
}

上述代碼演示了如何解析一個簡單的JSON字符串,包含三個屬性:name,age,sex。用json_loads()函數解析JSON字符串得到一個json_t類型的根節點,再通過json_object_get()函數獲取其中的值即可。

對于復雜的JSON格式,可以使用json_object_foreach()和json_array_foreach()函數遍歷JSON對象和數組。比如下面這個JSON格式:

{
"name":"張三",
"age":18,
"hobbies":["reading", "music", "sports"],
"friends":[
{"name":"李四", "age":19},
{"name":"王五", "age":20},
{"name":"趙六", "age":21}
]
}

可以使用以下代碼進行解析:

json_t *hobbies = json_object_get(root, "hobbies");  // 獲取hobbies數組
size_t index;
json_t *value;
json_array_foreach(hobbies, index, value) {  // 遍歷數組
printf("我的愛好是:%s\n", json_string_value(value));
}
json_t *friends = json_object_get(root, "friends");  // 獲取friends數組
json_array_foreach(friends, index, value) {  // 遍歷數組
json_t *name = json_object_get(value, "name");  // 獲取name屬性
json_t *age = json_object_get(value, "age");  // 獲取age屬性
printf("我的朋友是:%s,年齡是:%d\n", json_string_value(name), json_integer_value(age));
}

使用json_object_foreach()函數遍歷JSON對象也是類似的,只不過需要注意是字符串值還是其它類型的值。

總之,在C語言中,要解析JSON格式,需要先選擇一個JSON庫,然后根據JSON格式的不同,選擇合適的解析方式。