C JSON class是一個(gè)用于解析和生成JSON數(shù)據(jù)的類(lèi)庫(kù)。它可以幫助開(kāi)發(fā)人員快速地將JSON數(shù)據(jù)轉(zhuǎn)換為C語(yǔ)言變量,以及將C語(yǔ)言變量轉(zhuǎn)換為JSON數(shù)據(jù)。
#include "cJSON.h" #includeint main(void) { const char* json = "{\"name\": \"Tom\", \"age\": 20}"; cJSON* root = cJSON_Parse(json); if (root) { const cJSON* name = cJSON_GetObjectItemCaseSensitive(root, "name"); if (cJSON_IsString(name) && (name->valuestring != NULL)) { printf("Name: %s\n", name->valuestring); } const cJSON* age = cJSON_GetObjectItemCaseSensitive(root, "age"); if (cJSON_IsNumber(age)) { printf("Age: %d\n", age->valueint); } } cJSON_Delete(root); return 0; }
在上面的例子中,我們首先聲明一個(gè)JSON字符串,然后使用cJSON_Parse函數(shù)將其解析為一個(gè)cJSON對(duì)象(root)。然后我們使用cJSON_GetObjectItemCaseSensitive函數(shù)獲取JSON對(duì)象中的"name"和"age"屬性,并檢查它們是否是所期望的類(lèi)型。最后,我們輸出這些屬性的值,并在結(jié)束時(shí)刪除cJSON對(duì)象。
當(dāng)需要將C語(yǔ)言變量轉(zhuǎn)換為JSON數(shù)據(jù)時(shí),可以使用cJSON_CreateObject、cJSON_AddItemToObject等函數(shù)來(lái)構(gòu)造一個(gè)cJSON對(duì)象,并使用cJSON_Print函數(shù)將其轉(zhuǎn)換為JSON字符串。
#include "cJSON.h" #includeint main(void) { cJSON* root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 20); char* json = cJSON_Print(root); printf("%s\n", json); free(json); cJSON_Delete(root); return 0; }
這個(gè)例子中,我們首先創(chuàng)建一個(gè)空的cJSON對(duì)象(root),然后使用cJSON_AddStringToObject和cJSON_AddNumberToObject函數(shù)向其添加"name"和"age"屬性。最后,我們使用cJSON_Print函數(shù)將其轉(zhuǎn)換為一個(gè)JSON字符串,并在結(jié)束時(shí)釋放相關(guān)內(nèi)存。
總體上來(lái)說(shuō),C JSON class是一個(gè)功能強(qiáng)大、易于使用的JSON處理類(lèi)庫(kù),它可以幫助開(kāi)發(fā)人員更方便地處理JSON數(shù)據(jù)。