在C語言中,寫入JSON文件通常需要使用第三方庫。這里我們介紹一個常用的庫cJSON。
首先需要從cJSON官網(wǎng)(https://github.com/DaveGamble/cJSON)下載源碼,解壓后將cJSON.c和cJSON.h兩個文件復制到您的項目目錄中。
接下來我們看一個簡單的例子,演示如何使用cJSON庫將數(shù)據(jù)寫入JSON文件。
#include "cJSON.h" #include <stdio.h> int main(void) { // 創(chuàng)建一個JSON對象 cJSON *root = cJSON_CreateObject(); // 往JSON對象中添加數(shù)據(jù) cJSON_AddStringToObject(root, "name", "小明"); cJSON_AddNumberToObject(root, "age", 18); cJSON_AddBoolToObject(root, "is_student", 1); // 將JSON對象轉(zhuǎn)為字符串 char *json_str = cJSON_Print(root); // 打開文件 FILE *fp = fopen("test.json", "w"); if (fp == NULL) { printf("open file failed\n"); return -1; } // 將JSON字符串寫入文件 fprintf(fp, "%s", json_str); // 關閉文件 fclose(fp); // 釋放JSON對象和JSON字符串 cJSON_Delete(root); free(json_str); return 0; }
上面的代碼中,我們首先創(chuàng)建了一個JSON對象,然后使用cJSON_AddXXXToObject()函數(shù)往對象中添加數(shù)據(jù)。添加完成后,將JSON對象轉(zhuǎn)為字符串,打開文件,寫入JSON字符串,最后關閉文件。
運行完上面的代碼后,當前目錄下會生成一個test.json文件,內(nèi)容為:
{ "name": "小明", "age": 18, "is_student": true }
從上面的例子中可以看出,使用cJSON庫操作JSON文件非常方便。如果您需要更加復雜的JSON操作,也可以查看cJSON官方文檔,該庫提供了眾多API供您使用。
下一篇c 對接傳json