在C語言中,我們可以使用第三方庫來處理JSON數據格式的文件。在處理JSON文件時,我們需要完成兩個基本的操作:讀取和寫入JSON文件。下面我們來具體了解一下。
1. 寫入JSON文件
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h> #include "cJSON.h" int main() { cJSON* root = NULL; char* out = NULL; //創建JSON對象 root = cJSON_CreateObject(); //向對象中添加數據 cJSON_AddStringToObject(root, "name", "張三"); cJSON_AddNumberToObject(root, "age", 18); //將JSON對象轉換成字符串 out = cJSON_Print(root); //將JSON字符串寫入文件 FILE* fp = fopen("data.json", "w"); fputs(out, fp); fclose(fp); //釋放內存 cJSON_Delete(root); free(out); return 0; }
2. 讀取JSON文件
#include <stdio.h> #include <stdlib.h> #include <string.h> #include "cJSON.h" int main() { FILE* fp = fopen("data.json", "r"); if (fp == NULL) { printf("文件打開失??!"); return -1; } long size; char* content; cJSON* root = NULL; //獲取文件大小 fseek(fp, 0, SEEK_END); size = ftell(fp); fseek(fp, 0, SEEK_SET); //讀取文件內容 content = (char*)malloc(size + 1); memset(content, 0, size + 1); fread(content, 1, size, fp); //將字符串轉換成JSON對象 root = cJSON_Parse(content); //從JSON對象中獲取數據 cJSON* name = cJSON_GetObjectItem(root, "name"); cJSON* age = cJSON_GetObjectItem(root, "age"); printf("姓名:%s,年齡:%d\n", name->valuestring, age->valueint); //釋放內存 cJSON_Delete(root); free(content); return 0; }
以上就是在C語言中保存JSON文件以及讀取JSON文件的代碼示例。需要注意的是,在使用cJSON庫處理JSON文件時,一定要仔細閱讀官方文檔,避免出現不必要的錯誤。