C JSON庫是一個輕量級的、用C語言編寫的開源JSON解析器和生成器。它可以在各種操作系統上使用,包括Windows、Linux和Mac OS X。使用該庫,我們可以輕松地解析和生成JSON數據。
使用C JSON庫進行解析,我們只需將JSON數據傳遞給解析函數即可。解析函數將JSON數據解析出構成JSON對象的鍵值對,并將其存儲在內存中。例如,我們可以使用以下代碼對JSON數據進行解析:
#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函數對JSON數據進行解析,并使用cJSON_GetObjectItem函數獲取JSON對象的鍵值對,然后輸出該對象的值。
生成JSON數據也是非常簡單的。我們只需創建一個cJSON對象,并使用該對象的方法來添加鍵值對。例如,以下代碼會生成一個簡單的JSON對象:
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);
此代碼將輸出一個JSON字符串:{"name":"Tom","age":20}。在此代碼中,我們使用cJSON_CreateObject函數創建cJSON對象,并使用cJSON_Add*函數來添加鍵值對。使用cJSON_Print函數將對象轉換為JSON字符串,然后再使用free函數釋放字符串的內存空間。