在 C 語言中,我們可以使用 cJSON 庫來讀取 JSON 文件的內容。cJSON 是一個輕量級的、跨平臺的、用于解析 JSON 數據的 C 語言庫。
/* 首先需要引入 cJSON 庫 */
#include <cjson/cJSON.h>
int main() {
char *file_name = "example.json"; // JSON 文件名稱
FILE *fp = fopen(file_name, "r"); // 以只讀方式打開文件
if(fp == NULL) {
printf("Could not open file %s\n", file_name);
return 1;
}
fseek(fp, 0, SEEK_END); // 將文件指針移到文件末尾
long file_size = ftell(fp); // 獲取文件大小
fseek(fp, 0, SEEK_SET); // 將文件指針移到文件開頭
char *content = (char *) malloc(file_size + 1); // 分配內存空間
fread(content, 1, file_size, fp); // 讀取文件內容
fclose(fp);
cJSON *json = cJSON_Parse(content); // 解析 JSON 數據
free(content); // 釋放內存空間
if (json == NULL) {
const char *error_ptr = cJSON_GetErrorPtr();
if (error_ptr != NULL) {
printf("Error before: %s\n", error_ptr);
}
return 1;
}
cJSON *name = cJSON_GetObjectItemCaseSensitive(json, "name"); // 獲取 JSON 中 "name" 鍵對應的值
printf("Name: %s\n", cJSON_Print(name)); // 輸出值
cJSON_Delete(json); // 釋放 cJSON 對象
return 0;
}
該程序首先打開 JSON 文件,并讀取文件內容。然后使用 cJSON_Parse() 函數將 JSON 數據解析成 cJSON 對象。接著使用 cJSON_GetObjectItemCaseSensitive() 函數獲取 JSON 中指定的鍵對應的值。最后使用 cJSON_Print() 函數將該值輸出。程序最后使用 cJSON_Delete() 函數釋放 cJSON 對象。
上一篇python 怎么寫記錄
下一篇c 解析一個json數組