C-JSON庫是一個(gè)輕量級的C語言JSON解析器和生成器。它提供了簡單易用的API,使用戶能夠方便地解析JSON數(shù)據(jù)和生成JSON格式數(shù)據(jù)。
/* 一個(gè)簡單的導(dǎo)入JSON和遍歷數(shù)據(jù)的例子 */ #include <cjson/cJSON.h> #include <stdio.h> int main() { char *jsonStr = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; cJSON *json = cJSON_Parse(jsonStr); if (json == NULL) { printf("JSON解析失敗!\n"); return 1; } cJSON *name = cJSON_GetObjectItem(json, "name"); char *nameStr = cJSON_GetStringValue(name); printf("名字:%s\n", nameStr); cJSON *age = cJSON_GetObjectItem(json, "age"); int ageInt = age->valueint; printf("年齡:%d\n", ageInt); cJSON *city = cJSON_GetObjectItem(json, "city"); char *cityStr = cJSON_GetStringValue(city); printf("城市:%s\n", cityStr); cJSON_Delete(json); return 0; }
在上面的代碼中,我們首先將一個(gè)JSON字符串傳遞給cJSON_Parse()函數(shù)進(jìn)行解析,如果解析失敗,則在控制臺輸出錯(cuò)誤消息。接下來,我們使用cJSON_GetObjectItem()函數(shù)獲取JSON對象中的屬性,并使用相應(yīng)的cJSON_GetXXX()函數(shù)提取屬性值。
除了解析JSON數(shù)據(jù)外,C-JSON庫還可以用于生成JSON格式數(shù)據(jù):
/* 一個(gè)簡單的生成JSON格式數(shù)據(jù)的例子 */ #include <cjson/cJSON.h> #include <stdio.h> int main() { cJSON *json = cJSON_CreateObject(); cJSON *name = cJSON_CreateString("John"); cJSON *age = cJSON_CreateNumber(30); cJSON_AddItemToObject(json, "name", name); cJSON_AddItemToObject(json, "age", age); char *jsonStr = cJSON_Print(json); printf("生成的JSON格式數(shù)據(jù):%s", jsonStr); cJSON_Delete(json); return 0; }
在這個(gè)例子中,我們創(chuàng)建了一個(gè)JSON對象,并向其中添加了兩個(gè)屬性。最后,我們使用cJSON_Print()函數(shù)將JSON對象轉(zhuǎn)換為一個(gè)字符串,并輸出到控制臺。
C-JSON庫不僅簡單易用,而且非??焖偾揖€程安全,它可以處理任意大小的JSON數(shù)據(jù)。
上一篇cxf json rpc
下一篇c+訪問json文件