欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 語言解析json數(shù)據(jù)格式化

老白2年前7瀏覽0評(píng)論

近年來,JSON格式越來越受到程序員的歡迎,因?yàn)樗哂锌勺x性強(qiáng)、易于解析和生成等優(yōu)點(diǎn)。而在C語言中,JSON格式也是一種常見的數(shù)據(jù)格式。本文將會(huì)介紹如何在C語言中解析JSON數(shù)據(jù)格式化。

首先,我們需要使用C語言的一個(gè)JSON解析庫。常見的有cJSON

我們先來看一下要解析的JSON數(shù)據(jù)格式:

{
"name": "Alice",
"age": 18,
"job": "student",
"hobbies": [
"reading",
"music",
"dancing"
],
"address": {
"city": "Beijing",
"street": "Haidian"
}
}

首先,我們需要使用cJSON_Parse函數(shù)將JSON字符串轉(zhuǎn)換成一個(gè)cJSON數(shù)據(jù)結(jié)構(gòu)。

char* json_str = "{...}"; // JSON字符串
cJSON* root = cJSON_Parse(json_str); // 解析JSON數(shù)據(jù)

接下來,我們可以使用cJSON_GetObjectItem函數(shù)獲取JSON數(shù)據(jù)的各個(gè)字段值。

// 獲取字符串類型字段值
cJSON* name_obj = cJSON_GetObjectItem(root, "name");
char* name_str = name_obj->valuestring;
// 獲取數(shù)字類型字段值
cJSON* age_obj = cJSON_GetObjectItem(root, "age");
int age_int = age_obj->valueint;
// 獲取數(shù)組類型字段值
cJSON* hobbies_obj = cJSON_GetObjectItem(root, "hobbies");
int hobbies_size = cJSON_GetArraySize(hobbies_obj);
for (int i = 0; i< hobbies_size; i++) {
cJSON* hobby_obj = cJSON_GetArrayItem(hobbies_obj, i);
char* hobby_str = hobby_obj->valuestring;
}
// 獲取對(duì)象類型字段值
cJSON* address_obj = cJSON_GetObjectItem(root, "address");
cJSON* city_obj = cJSON_GetObjectItem(address_obj, "city");
char* city_str = city_obj->valuestring;

最后,我們需要使用cJSON_Delete函數(shù)釋放cJSON數(shù)據(jù)結(jié)構(gòu)所占用的內(nèi)存。

cJSON_Delete(root); // 釋放cJSON數(shù)據(jù)結(jié)構(gòu)內(nèi)存

至此,我們已經(jīng)實(shí)現(xiàn)了在C語言中解析JSON數(shù)據(jù)格式化。當(dāng)然,cJSON還支持更多的功能,例如生成JSON字符串等,有興趣的讀者可以查閱相關(guān)文檔進(jìn)一步學(xué)習(xí)。