cjson是一個用于處理json格式數據的C語言庫,它提供了將C語言中的數據轉換成json格式數據的接口,也提供了將json格式數據轉換成C語言中的數據的接口。在使用cjson的過程中,我們通常需要將處理完畢的json數據保存到文件中,以便以后使用。
保存json數據到文件中的過程需要我們先將json數據轉換成字符串,然后再將字符串寫入到文件中。cjson提供了一個將json數據轉換成字符串的函數cJSON_Print,此函數的聲明如下:
char *cJSON_Print(const cJSON *item);
該函數需要一個cJSON類型的參數,表示要轉換成字符串的json數據。該函數返回一個指向字符串的指針,該字符串即為轉換得到的json字符串。需要注意的是,該函數返回的指針指向的內存空間需要我們手動釋放。
接下來,我們可以使用C語言的標準IO庫來將轉換得到的json字符串寫入到文件中。例如,下面的代碼將json數據保存到文件data.json中:
#include <stdio.h> #include <cJSON.h> int main() { cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 18); char *json_str = cJSON_Print(root); FILE *fp = fopen("data.json", "w"); if (fp) { fputs(json_str, fp); fclose(fp); } free(json_str); cJSON_Delete(root); return 0; }
在上述代碼中,我們首先創建了一個cJSON對象root
,并向其添加了兩個屬性name
和age
,分別表示一個人的姓名和年齡。然后,我們調用cJSON_Print函數將root
對象轉換成字符串json_str
。接著,我們使用標準IO庫函數json_str
寫入到文件data.json中,并在最后釋放申請的內存和cJSON對象。