CJSON是一個(gè)輕量級(jí)的C語言JSON處理器庫(kù),它提供了一組API來讀取和寫入JSON數(shù)據(jù)。使用CJSON可以很方便地將JSON數(shù)據(jù)存儲(chǔ)到變量中,同時(shí)也可以根據(jù)需要從變量中獲取JSON數(shù)據(jù)。
在CJSON中,JSON數(shù)據(jù)被表示為一個(gè)JSON對(duì)象,我們可以使用cJSON_CreateObject函數(shù)來創(chuàng)建一個(gè)JSON對(duì)象:
cJSON* json = cJSON_CreateObject();
然后,我們可以使用cJSON_AddItemToObject函數(shù)為JSON對(duì)象添加一個(gè)子對(duì)象或子數(shù)組:
cJSON* jsonArray = cJSON_CreateArray(); cJSON_AddItemToObject(json, "array", jsonArray); cJSON* jsonObject = cJSON_CreateObject(); cJSON_AddItemToObject(json, "object", jsonObject);
要向子對(duì)象或子數(shù)組中添加數(shù)據(jù),我們可以使用cJSON_AddItemToArray或cJSON_AddItemToObject函數(shù):
cJSON_AddItemToArray(jsonArray, cJSON_CreateString("Hello")); cJSON_AddItemToArray(jsonArray, cJSON_CreateString("World")); cJSON_AddItemToObject(jsonObject, "name", cJSON_CreateString("John")); cJSON_AddItemToObject(jsonObject, "age", cJSON_CreateNumber(30));
最后,我們可以使用cJSON_Print函數(shù)將JSON對(duì)象轉(zhuǎn)換為JSON字符串:
char* jsonString = cJSON_Print(json); printf("%s", jsonString);
如果需要讀取JSON數(shù)據(jù),我們可以使用cJSON_Parse函數(shù)將JSON字符串解析為JSON對(duì)象,然后使用cJSON_GetObjectItem或cJSON_GetArrayItem函數(shù)獲取JSON對(duì)象中的數(shù)據(jù):
const char* jsonStr = "{\"name\":\"John\",\"age\":30}"; cJSON* json = cJSON_Parse(jsonStr); cJSON* name = cJSON_GetObjectItem(json, "name"); cJSON* age = cJSON_GetObjectItem(json, "age"); printf("%s: %d", name->valuestring, age->valueint);
以上就是CJSON存取JSON數(shù)據(jù)的一些基本操作。使用CJSON可以輕松地處理JSON數(shù)據(jù),實(shí)現(xiàn)自己的JSON數(shù)據(jù)處理程序。