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

c json 動態反序列化

劉柏宏2年前7瀏覽0評論

CJSON是一個輕量級的JSON解析庫,它適用于C語言編寫的應用程序。CJSON可以將JSON數據解析為C語言數據結構,反之它也可以將C語言數據結構序列化為JSON數據。CJSON不僅僅可以解析靜態的JSON數據,還可以動態反序列化JSON數據。

/*動態反序列化JSON*/
#include <cjson/cJSON.h>
#include <stdio.h>
int main()
{
char *json_str = "{  
\"name\": \"Alice\",
\"age\": 24,
\"address\": {
\"city\": \"Beijing\",
\"street\": \"No.8 Road\"
},
\"scores\": [90, 80, 95]
}";
cJSON *root = cJSON_Parse(json_str);
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 *scores = cJSON_GetObjectItem(root, "scores");
cJSON *score1 = cJSON_GetArrayItem(scores, 0);
printf("name: %s\n", name->valuestring);
printf("age: %d\n", age->valueint);
printf("address.city: %s\n", city->valuestring);
printf("scores[0]: %d\n", score1->valueint);
cJSON_Delete(root);
return 0;
}

上述代碼中,我們首先先定義了一個JSON字符串,然后通過cJSON_Parse函數將其解析為一個CJSON對象,接著使用cJSON_GetObjectItem來獲取對象中的屬性值,最后通過各個cJSON對象中提供的接口函數獲取屬性值。

動態反序列化JSON是一個很常見的應用場景,因為動態反序列化比靜態反序列化更加靈活,能夠根據實際情況對JSON數據進行處理。