JSON是一種輕量級數據交換格式,廣泛應用于互聯網應用程序中,C語言中有許多庫可用于處理JSON格式的數據,其中一個常用的庫是cJSON。cJSON能夠將JSON格式的數據解析為C語言中的數據結構,能夠方便地讀寫JSON文件。
#include <stdio.h> #include <cJSON.h> int main() { char *json_str = "{\"name\":\"Tom\", \"age\":20, \"hobby\":[\"swim\", \"run\"]}"; cJSON *root = cJSON_Parse(json_str); // read cJSON *name = cJSON_GetObjectItem(root, "name"); printf("name: %s\n", name->valuestring); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("age: %d\n", age->valueint); cJSON *array = cJSON_GetObjectItem(root, "hobby"); printf("hobby:\n"); for(int i = 0; i< cJSON_GetArraySize(array); i++) { cJSON *item = cJSON_GetArrayItem(array, i); printf("\t%s\n", item->valuestring); } // write cJSON_AddItemToObject(root, "gender", cJSON_CreateString("male")); cJSON *file = fopen("data.json", "w+"); char *json_file = cJSON_Print(root); fputs(json_file, file); fclose(file); cJSON_Delete(root); return 0; }
上面的代碼演示了如何用cJSON庫讀取JSON字符串,并將結果解析為C語言中的數據結構。我們使用cJSON_GetObjectItem()函數獲取JSON對象中的屬性值和數組元素,然后打印出來。
接下來的代碼演示了如何向JSON對象中添加新屬性,并將修改后的JSON字符串寫入文件中,這里我們使用cJSON_AddItemToObject()函數新增一個屬性gender,并將修改后的JSON字符串寫入data.json文件中。
通過以上代碼示例,你可以看到cJSON庫非常易于使用,能夠方便地讀寫JSON文件,并且支持檢查和處理JSON格式錯誤。在實際開發中,可以結合其他的庫或框架,使用cJSON解析API返回的JSON數據,或將服務端返回的JSON數據與客戶端進行交互,實現更加靈活的數據交互方式。