c JSON 保存到文件是一項非常重要的操作。JSON 是一種輕量級的數據交換格式,常被用于各種平臺之間的數據交換。使用 C 語言來解析和保存 JSON 數據非常方便,支持多種操作系統平臺,且代碼量較小,性能較高。下面介紹 C JSON 如何保存到文件。
首先,需要導入 cJSON 庫。cJSON 是一套用于解析和生成 JSON 數據的 C 庫,十分方便實用,數據結構簡單清晰,而且內存管理十分優秀。
#include "cJSON.h"
接著,需要聲明數據結構體,用于保存 JSON 對象的各種屬性和值。
typedef struct { int id; char name[20]; double score; int age; } Student;
當數據結構體定義好后,可以使用 cJSON 來進行 JSON 對象的解析和生成,在生成時記得調用 cJSON_Delete()函數來釋放內存。
// 生成 JSON 對象 cJSON* CreateJson(Student stu) { cJSON* pJson = cJSON_CreateObject(); cJSON_AddNumberToObject(pJson, "id", stu.id); cJSON_AddStringToObject(pJson, "name", stu.name); cJSON_AddNumberToObject(pJson, "score", stu.score); cJSON_AddNumberToObject(pJson, "age", stu.age); return pJson; } // 保存 JSON 對象到文件 void SaveToJson(Student* pStu, int count) { cJSON* root = cJSON_CreateArray(); for (int i = 0; i< count; i++) { cJSON* item = CreateJson(pStu[i]); cJSON_AddItemToArray(root, item); } // 把JSON結構格式化到緩沖區JSONStr中 char* JSONStr = cJSON_Print(root); FILE* fp = fopen("data.json", "w"); fwrite(JSONStr, strlen(JSONStr), 1, fp); fclose(fp); cJSON_Delete(root); // 釋放內存 free(JSONStr); // 釋放內存 }
以上就是 C JSON 保存到文件的代碼實現。