JSON是一種輕量級的數據交換格式,隨著互聯網的發展,越來越多的應用使用JSON格式來傳輸數據。而C語言也提供了許多庫來解析和生成JSON數據,其中比較受歡迎的就是cJSON庫。使用cJSON庫,我們可以方便地將JSON字符串解析成C語言中的數據結構,也可以將C語言數據結構轉換成JSON字符串。
// 例子:解析JSON字符串 #include#include "cJSON.h" int main() { char *json = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}"; cJSON *root = cJSON_Parse(json); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); cJSON *city = cJSON_GetObjectItem(root, "city"); printf("name: %s\n", name->valuestring); printf("age: %d\n", age->valueint); printf("city: %s\n", city->valuestring); cJSON_Delete(root); return 0; }
以上代碼中,我們首先定義了一個JSON字符串,然后使用cJSON_Parse函數將其解析成一個cJSON對象。接著使用cJSON_GetObjectItem函數獲取其中的各個字段,并按照對應的類型訪問其值,最后使用cJSON_Delete函數釋放內存。
// 例子:生成JSON字符串 #include#include "cJSON.h" int main() { cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "John"); cJSON_AddNumberToObject(root, "age", 30); cJSON_AddStringToObject(root, "city", "New York"); char *json = cJSON_Print(root); printf("%s\n", json); cJSON_Delete(root); free(json); return 0; }
以上代碼中,我們首先使用cJSON_CreateObject函數創建了一個空的cJSON對象,然后使用cJSON_AddXXXToObject函數向其中添加各個字段,最后使用cJSON_Print函數將其轉換成JSON字符串,并將其打印出來。注意,我們需要手動釋放JSON字符串的內存空間。
cJSON提供了許多API函數來方便地操作JSON數據,使用起來也十分簡單。如果你需要在C語言中處理JSON數據,cJSON絕對是你的不二之選。