JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,常用于前后端數(shù)據(jù)傳輸和存儲(chǔ)。在C語(yǔ)言中,我們可以用第三方庫(kù)cJSON來(lái)方便地生成和解析JSON。
#include "cJSON.h" int main() { // 創(chuàng)建json對(duì)象 cJSON *root = cJSON_CreateObject(); // 添加鍵值對(duì) cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 20); // 生成json字符串 char *json_str = cJSON_Print(root); printf("%s", json_str); // 解析json字符串 cJSON *root2 = cJSON_Parse(json_str); char *name = cJSON_GetObjectItem(root2, "name")->valuestring; int age = cJSON_GetObjectItem(root2, "age")->valueint; printf("%s, %d", name, age); // 釋放內(nèi)存 cJSON_Delete(root); cJSON_Delete(root2); free(json_str); return 0; }
在上面的代碼中,我們首先創(chuàng)建了一個(gè)cJSON對(duì)象root,并通過(guò)cJSON_AddXXXToObject函數(shù)不斷添加鍵值對(duì)。最后通過(guò)cJSON_Print將其轉(zhuǎn)換為JSON字符串輸出。接著我們又通過(guò)cJSON_Parse將其解析為一個(gè)新的cJSON對(duì)象root2,并通過(guò)cJSON_GetObjectItem獲取指定鍵的值。最后記得釋放內(nèi)存。
除此之外,cJSON庫(kù)還有很多其他的API,比如可以添加數(shù)組、嵌套對(duì)象等。如果你需要在C語(yǔ)言中操作JSON數(shù)據(jù),建議選擇cJSON這個(gè)庫(kù)。