JSON是一種輕量級的數據格式,常用于前后端數據交互。C語言也可以通過解析JSON文件,實現對數據的讀取。本文將介紹C語言如何讀取JSON文件。
首先需要下載JSON解析庫,可選擇開源的 cJSON 庫。下載后在C語言項目中添加相應的頭文件和源文件。
下面是讀取JSON文件的示例代碼:
#include "cJSON.h" #include <stdio.h> int main(){ //定義變量 FILE *fp; long file_size; char *json_data; cJSON *root; cJSON *array; //打開JSON文件 fp = fopen("data.json", "rb"); if(fp == NULL) { printf("Fail to open file!\n"); return -1; } //獲取文件大小 fseek(fp, 0, SEEK_END); file_size = ftell(fp); fseek(fp, 0, SEEK_SET); //讀取文件數據 json_data = (char*)malloc(file_size + 1); fread(json_data, file_size, 1, fp); json_data[file_size] = '\0'; //解析JSON數據 root = cJSON_Parse(json_data); if(!root) { printf("Error before: %s\n", cJSON_GetErrorPtr()); return -1; } //獲取JSON數組 array = cJSON_GetObjectItem(root, "data"); if(!array) { printf("Error before: %s\n", cJSON_GetErrorPtr()); cJSON_Delete(root); return -1; } //遍歷JSON數組 cJSON *item = NULL; cJSON_ArrayForEach(item, array){ cJSON *name = cJSON_GetObjectItem(item, "name"); cJSON *age = cJSON_GetObjectItem(item, "age"); if(name && age) { printf("%s: %d years old\n", name->valuestring, age->valueint); } } //釋放內存 cJSON_Delete(root); free(json_data); fclose(fp); return 0; }
以上代碼實現了讀取JSON文件,并解析其中的數據。需要注意的是,cJSON庫提供了豐富的API接口,可根據具體需求進行調用。
下一篇vue 登錄注冊接口