C語言是一種廣泛應用于計算機編程的高級編程語言。在C語言中,讀取文本文件是非常普遍的任務。在本文中,我們將介紹如何使用C語言從文件中讀取JSON數據。
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
bool load_json(const char* filename, json_t** json) {
FILE* fp;
long file_size;
char* buffer;
fp = fopen(filename, "rb");
if (!fp) {
return false;
}
fseek(fp, 0, SEEK_END);
file_size = ftell(fp);
fseek(fp, 0, SEEK_SET);
buffer = (char*) malloc(file_size + 1);
if (!buffer) {
fclose(fp);
return false;
}
if (fread(buffer, file_size, 1, fp) != 1) {
fclose(fp);
free(buffer);
return false;
}
fclose(fp);
buffer[file_size] = '\0';
*json = json_loads(buffer, 0, NULL);
free(buffer);
if (*json == NULL) {
return false;
}
return true;
}
這段代碼使用了jansson庫來處理JSON數據。它定義了一個名為“load_json”的函數,該函數從文件中讀取JSON數據,并將其加載到json_t結構體中。
該函數的第一個參數是文件名,第二個參數是指向指針的指針,它將分配json_t結構體并將其地址分配給調用者。
該函數首先打開文件并將其大小計算為文件大小。接下來,它將文件中的內容讀入動態分配的緩沖區中。
從緩沖區中讀取的數據被傳遞給庫的“json_loads”函數,該函數將JSON數據加載到json_t結構體中。如果加載失敗,則該函數返回false。如果加載成功,則該函數返回true。
此代碼可用于讀取包含JSON數據的任何文件。使用該函數,您可以輕松地從文件系統中讀取JSON數據。
上一篇python 建立樹結構
下一篇python 開發工作流