在C語(yǔ)言中,我們經(jīng)常需要讀取JSON文件中的數(shù)據(jù),這個(gè)過(guò)程有時(shí)候非常困難,但是使用合適的庫(kù)和方法就可以輕松完成。在本篇文章中,將介紹如何讀取JSON文件內(nèi)容的方法。
首先,我們需要使用一個(gè)JSON解析庫(kù)來(lái)進(jìn)行解析JSON文件內(nèi)容。這里我們選擇使用Jansson庫(kù)。這個(gè)庫(kù)可以在官網(wǎng)上下載。
#include <jansson.h> int main() { json_error_t error; json_t *root; //打開(kāi)json文件 FILE* fp = fopen("test.json", "rb"); if (!fp) { printf("cannot open file"); exit(0); } //讀取json文件內(nèi)容 root = json_loadf(fp, 0, &error); //關(guān)閉文件 fclose(fp); if (!root) { printf("error on line %d: %s\n", error.line, error.text); exit(0); } //讀取json對(duì)象內(nèi)容 json_t *name = json_object_get(root, "name"); printf("name is %s\n", json_string_value(name)); //釋放json對(duì)象 json_decref(root); return 0; }
在上面的代碼中,我們首先打開(kāi)JSON文件,通過(guò)json_loadf函數(shù)讀取JSON文件內(nèi)容,并將解析好的數(shù)據(jù)存儲(chǔ)在json_t結(jié)構(gòu)體中。我們可以通過(guò)json_object_get函數(shù)獲取JSON文件中的對(duì)象內(nèi)容,并獲取對(duì)應(yīng)的值。
最后,我們需要釋放掉jansson庫(kù)的內(nèi)存,來(lái)避免內(nèi)存泄漏。這里使用json_decref函數(shù)就可以釋放掉我們剛剛解析好的JSON對(duì)象。
總的來(lái)說(shuō),讀取JSON文件內(nèi)容在C語(yǔ)言中并不是一個(gè)難題,只需要使用對(duì)應(yīng)的庫(kù)和方法,就可以輕松完成。