C語言中支持Json的庫有很多,CJSON是其中的一種,它是一個輕量級的Json解析庫,擁有讀取、生成和修改Json文本的功能。CJSON是由Dave Gamble所編寫的一個單文件開源代碼庫,它的使用方式非常簡單,只要導入頭文件后即可輕松使用。
#include "cJSON.h" int main() { cJSON *root = cJSON_Parse("{\"name\":\"Jack\", \"age\":24}"); printf("name:%s\n", cJSON_GetObjectItem(root, "name")->valuestring); printf("age:%d\n", cJSON_GetObjectItem(root, "age")->valueint); cJSON_Delete(root); return 0; }
以上代碼演示了如何解析一個Json字符串,獲取其中的數據,最后釋放內存。cJSON_GetObjectItem是獲取Json對象中鍵值對的函數,它返回一個cJSON類型的指針,這個指針可以通過判斷類型來獲取值。cJSON_Parse是將Json文本轉化為cJSON對象的函數,如果解析出錯,返回一個空指針。cJSON_Delete函數則是將cJSON對象刪除掉。
如果想要生成一個Json字符串,只需要調用cJSON_CreateObject()函數創建一個空的Json對象,然后使用cJSON_AddItemToObject函數添加鍵值對即可。
cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Jack"); cJSON_AddNumberToObject(root, "age", 24); char *json_str = cJSON_Print(root); printf("%s", json_str); cJSON_Delete(root); free(json_str);
以上代碼演示了如何生成一個包含name和age的Json字符串,cJSON_Print函數將cJSON對象轉化為Json字符串,返回一個指向該字符串的指針。
總體來說,CJSON作為C語言中的Json解析庫,它的使用方式簡單,它的壓縮體積小,性能優異。而且它還支持對Json進行修改的操作,如果你的項目需要使用Json,那么CJSON絕對是一個值得推薦的選擇。