在C語言中,使用第三方庫進行JSON文件的讀取與操作是比較常見的方法。以下是一個使用cJSON庫讀取JSON文件的示例:
#include <stdio.h>
#include <cJSON.h>
int main() {
// 打開JSON文件
FILE* fp = fopen("data.json", "r");
if (fp == NULL) {
printf("無法打開文件\n");
return -1;
}
// 讀取JSON文件數據
fseek(fp, 0, SEEK_END);
long file_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
char* json_data = (char*) malloc(file_size + 1);
fread(json_data, 1, file_size, fp);
json_data[file_size] = '\0';
fclose(fp);
// 解析JSON數據
cJSON* root = cJSON_Parse(json_data);
if (root == NULL) {
printf("無法解析JSON數據\n");
return -1;
}
// 獲取JSON對象的值
cJSON* name = cJSON_GetObjectItem(root, "name");
if (name != NULL) {
printf("name: %s\n", name->valuestring);
}
cJSON* age = cJSON_GetObjectItem(root, "age");
if (age != NULL) {
printf("age: %d\n", age->valueint);
}
// 釋放內存
cJSON_Delete(root);
free(json_data);
return 0;
}
代碼中使用了cJSON庫來解析JSON數據。首先需要打開JSON文件并讀取其中的數據,然后通過cJSON_Parse函數將JSON數據解析成一個cJSON對象,就可以通過cJSON_GetObjectItem函數獲取對象中的值。
需要注意的是,在讀取JSON文件數據時需要注意文件大小。代碼中使用了fseek和ftell函數獲取文件大小并進行讀取。