在C語言中,我們可以使用cJSON這個庫來處理JSON類型的數據。
cJSON是一款輕量級的C語言JSON庫,它可以將JSON類型的數據解析成為C語言中的對象,也可以將C語言中的對象序列化成JSON類型的字符串。cJSON不依賴于其他的庫,只需要包含cJSON.h頭文件即可。
#include "cJSON.h" int main(void) { char* json_str = "{\"name\":\"Tom\",\"age\":18}"; // 解析JSON字符串 cJSON* json_obj = cJSON_Parse(json_str); // 獲取name和age字段的值 cJSON* name = cJSON_GetObjectItem(json_obj, "name"); cJSON* age = cJSON_GetObjectItem(json_obj, "age"); printf("name: %s\nage: %d\n", name->valuestring, age->valueint); // 構建JSON對象 cJSON* new_obj = cJSON_CreateObject(); cJSON_AddStringToObject(new_obj, "name", "Jerry"); cJSON_AddNumberToObject(new_obj, "age", 20); // 序列化JSON對象 char* new_json_str = cJSON_Print(new_obj); printf("new_json_str: %s\n", new_json_str); // 釋放內存 cJSON_Delete(json_obj); cJSON_Delete(new_obj); free(new_json_str); return 0; }
在上面的代碼中,我們首先定義了一個JSON字符串,并通過cJSON_Parse函數解析成了JSON對象。接著,我們使用cJSON_GetObjectItem函數獲取了name和age字段的值,并打印出來。
然后,我們構建了一個新的JSON對象,分別添加了name和age字段,并通過cJSON_Print函數將其序列化成了JSON字符串。最后,我們使用cJSON_Delete和free函數釋放了內存。
總之,cJSON是一款非常方便的處理JSON類型數據的庫,可以幫助我們輕松地將JSON字符串解析成C語言中的對象,以及將C語言中的對象序列化成JSON字符串。