C JSON庫(kù)是一個(gè)輕量級(jí)的、用C語(yǔ)言編寫的開源JSON解析器和生成器。它可以在各種操作系統(tǒng)上使用,包括Windows、Linux和Mac OS X。使用該庫(kù),我們可以輕松地解析和生成JSON數(shù)據(jù)。
使用C JSON庫(kù)進(jìn)行解析,我們只需將JSON數(shù)據(jù)傳遞給解析函數(shù)即可。解析函數(shù)將JSON數(shù)據(jù)解析出構(gòu)成JSON對(duì)象的鍵值對(duì),并將其存儲(chǔ)在內(nèi)存中。例如,我們可以使用以下代碼對(duì)JSON數(shù)據(jù)進(jìn)行解析:
#include <stdio.h> #include <cjson/cJSON.h> int main() { char *json_str = "{\"name\": \"Tom\", \"age\": 20}"; cJSON *json = cJSON_Parse(json_str); cJSON *name = cJSON_GetObjectItem(json, "name"); cJSON *age = cJSON_GetObjectItem(json, "age"); printf("name: %s, age: %d\n", name->valuestring, age->valueint); cJSON_Delete(json); return 0; }
此代碼將輸出:name: Tom, age: 20。在此代碼中,我們使用cJSON_Parse函數(shù)對(duì)JSON數(shù)據(jù)進(jìn)行解析,并使用cJSON_GetObjectItem函數(shù)獲取JSON對(duì)象的鍵值對(duì),然后輸出該對(duì)象的值。
生成JSON數(shù)據(jù)也是非常簡(jiǎn)單的。我們只需創(chuàng)建一個(gè)cJSON對(duì)象,并使用該對(duì)象的方法來添加鍵值對(duì)。例如,以下代碼會(huì)生成一個(gè)簡(jiǎn)單的JSON對(duì)象:
cJSON *json = cJSON_CreateObject(); cJSON_AddStringToObject(json, "name", "Tom"); cJSON_AddNumberToObject(json, "age", 20); char *json_str = cJSON_Print(json); printf("%s\n", json_str); free(json_str); cJSON_Delete(json);
此代碼將輸出一個(gè)JSON字符串:{"name":"Tom","age":20}。在此代碼中,我們使用cJSON_CreateObject函數(shù)創(chuàng)建cJSON對(duì)象,并使用cJSON_Add*函數(shù)來添加鍵值對(duì)。使用cJSON_Print函數(shù)將對(duì)象轉(zhuǎn)換為JSON字符串,然后再使用free函數(shù)釋放字符串的內(nèi)存空間。