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

c 讀入json

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

C語(yǔ)言是一種通用的編程語(yǔ)言,在編寫程序時(shí)需要讀入處理文件數(shù)據(jù)。 JSON 是一種輕量級(jí)的數(shù)據(jù)交換格式,因其簡(jiǎn)潔、易讀性強(qiáng)、擴(kuò)展性好和互聯(lián)網(wǎng)傳輸效率高而被廣泛使用。C 語(yǔ)言支持讀取 JSON 數(shù)據(jù),有關(guān)讀取 JSON 數(shù)據(jù)的方法,請(qǐng)參閱以下代碼。

#include "cJSON.h"
#include "stdio.h"
#include "stdlib.h"
int main()
{
// 讀取 JSON 字符串內(nèi)容
char *json_string = "{\r\n\"name\":\"Ada\",\r\n\"age\":28,\r\n\"score\":[90, 95, 80],\r\n\"address\":{\r\n\"city\":\"Shanghai\",\r\n\"province\":\"Shanghai\"\r\n}\r\n}";
// 創(chuàng)建 JSON 對(duì)象并進(jìn)行解析
cJSON *root = cJSON_Parse(json_string);
if (!root) 
{
printf("Error before: [%s]\n", cJSON_GetErrorPtr());
return 1;
}
// 獲取 JSON 對(duì)象中的數(shù)據(jù)
cJSON *name = cJSON_GetObjectItem(root, "name");
printf("name: %s\n", name->valuestring);
cJSON *age = cJSON_GetObjectItem(root, "age");
printf("age: %d\n", age->valueint);
cJSON *score = cJSON_GetObjectItem(root, "score");
int score_size = cJSON_GetArraySize(score);
printf("score size: %d\n", score_size);
for (int i = 0; i < score_size; i++)
{
int s = cJSON_GetArrayItem(score, i)->valueint;
printf("score item %d : %d\n", i, s);
}
cJSON *address = cJSON_GetObjectItem(root, "address");
cJSON *address_city = cJSON_GetObjectItem(address, "city");
printf("address city: %s\n", address_city->valuestring);
cJSON_Delete(root);
return 0;
}

首先,我們使用 cJSON.h 中的 cJSON_Parse 函數(shù)將 JSON 字符串轉(zhuǎn)換成 JSON 對(duì)象。然后,我們使用 cJSON_GetObjectItem 函數(shù)獲取 JSON 對(duì)象中的數(shù)據(jù),并使用 cJSON_GetArrayItem 函數(shù)獲取 JSON 數(shù)組中的元素。最后,我們使用 cJSON_Delete 函數(shù)釋放 JSON 對(duì)象占用的內(nèi)存。

總之,使用 C 語(yǔ)言讀取 JSON 數(shù)據(jù)可以通過(guò) cJSON 庫(kù)來(lái)實(shí)現(xiàn)。我們只需要使用 cJSON_Parse 函數(shù)進(jìn)行解析,然后通過(guò) cJSON_GetObjectItem 和 cJSON_GetArrayItem 函數(shù)獲取 JSON 對(duì)象中的數(shù)據(jù),最后記得使用 cJSON_Delete 函數(shù)來(lái)釋放內(nèi)存。使用 cJSON 庫(kù)可以讓 C 語(yǔ)言更容易地讀取和處理 JSON 數(shù)據(jù),讓我們的程序更加高效、穩(wěn)定!