在C語言中,讀寫JSON是非常常見的操作。JSON是一種輕量級的數據交換格式,常見于前后端數據交互。下面我們來介紹一下如何在C語言中讀寫JSON。
首先,我們需要一個JSON庫。C語言中常用的JSON庫有json-c和cJSON。這里我們以json-c為例,首先需要安裝json-c庫。
sudo apt-get install libjson-c-dev
安裝完成后,我們就可以開始使用json-c庫了。下面是一個使用json-c庫讀JSON文件的示例代碼:
#include#include int main() { FILE *fp; long length; char *data; struct json_object *json; fp = fopen("data.json", "r"); fseek(fp, 0, SEEK_END); length = ftell(fp); fseek(fp, 0, SEEK_SET); data = malloc(length + 1); fread(data, 1, length, fp); fclose(fp); json = json_tokener_parse(data); printf("%s", json_object_to_json_string(json)); free(data); json_object_put(json); return 0; }
上面代碼中,我們首先打開JSON文件,讀取其中的數據。然后使用json_tokener_parse()函數將數據解析為json對象。最后,使用json_object_to_json_string()函數將json對象轉換為字符串打印出來。
接下來,我們來看一下使用json-c庫寫JSON文件的示例代碼:
#include#include int main() { struct json_object *json; struct json_object *obj; json = json_object_new_object(); obj = json_object_new_int(123); json_object_object_add(json, "test", obj); FILE *fp = fopen("out.json", "w"); fputs(json_object_to_json_string(json), fp); fclose(fp); json_object_put(json); return 0; }
上面代碼中,我們首先創建一個空的json對象,使用json_object_new_int()函數創建一個鍵值為"test",值為123的對象。最后,將json對象轉換為字符串寫入文件中。
使用json-c庫讀寫JSON非常簡單,這里只是簡單的介紹了一些基本操作,如果想深入學習可以看看json-c和cJSON的官方文檔。