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

C 解析多層嵌套json實例

林玟書2年前8瀏覽0評論

在使用C語言解析多層嵌套JSON時,我們一般會使用第三方庫,比如CJSON。這篇文章將通過一個示例來演示如何使用CJSON解析多層嵌套的JSON數據。

首先,我們需要安裝CJSON庫。可以從Github上下載源代碼,并執行make命令編譯庫。然后,我們就可以在自己的代碼中引用該庫。

#include <stdio.h>
#include <cjson/cJSON.h>
int main() {
char *json_str = "{\"name\": \"Tom\", \"age\": 20, \"address\": {\"city\": \"Beijing\", \"zip\": 100000}}";
cJSON *root = cJSON_Parse(json_str);
if (!root) {
printf("parse error\n");
return -1;
}
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
cJSON *address = cJSON_GetObjectItem(root, "address");
cJSON *city = cJSON_GetObjectItem(address, "city");
cJSON *zip = cJSON_GetObjectItem(address, "zip");
printf("name: %s\n", name->valuestring);
printf("age: %d\n", age->valueint);
printf("address: %s, %d\n", city->valuestring, zip->valueint);
cJSON_Delete(root);
return 0;
}

在這個示例中,我們定義了一個JSON字符串,其中包含了各種類型的數據,包括字符串、整數和嵌套的JSON對象。

我們首先調用cJSON_Parse函數來解析JSON字符串,如果解析失敗,則返回NULL。然后我們使用cJSON_GetObjectItem函數來獲取JSON對象中的具體元素,比如“name”、“age”和“address”。

注意,在獲取嵌套的JSON對象時,我們需要先獲取父對象,然后再獲取子對象。比如,我們需要獲取“address”對象時,先獲取“root”中的“address”元素,然后再從“address”對象中獲取“city”和“zip”元素。

最后,我們打印出各個元素的值,并調用cJSON_Delete函數來釋放內存。

通過這個示例,我們可以看到,使用CJSON庫可以很方便地解析多層嵌套的JSON數據。