C語言是一種廣泛使用的編程語言,它被廣泛應(yīng)用于各種領(lǐng)域。在這個(gè)過程中,我們有時(shí)需要將數(shù)據(jù)以JSON格式存儲(chǔ)。那么,如何使用C語言保存JSON格式的文件呢?
#include<stdio.h> #include<stdlib.h> #include<jansson.h> int main(){ json_t* root; json_error_t error; root = json_pack("{sisi}", "id", 1, "age", 25); if(!root){ fprintf(stderr, "Error: json_pack: %s\n", error.text); return 1; } FILE* fp; fp = fopen("user.json", "w"); if(fp){ json_dumpf(root, fp, JSON_INDENT(4)); fclose(fp); } else { fprintf(stderr, "Error: open file failed\n"); return 1; } json_decref(root); return 0; }
上面的代碼使用了jansson這個(gè)C語言的JSON庫,來把數(shù)據(jù)以JSON格式寫入到user.json文件中。其中,json_t*代表JSON對(duì)象的指針類型,json_error_t代表JSON庫處理錯(cuò)誤信息的結(jié)構(gòu)體。
第7行,使用json_pack函數(shù)創(chuàng)建一個(gè)JSON對(duì)象,其中“{sisi}”代表key和value的對(duì)應(yīng)關(guān)系:
- s——string
- i——integer
第8-10行,判斷json_pack函數(shù)返回的JSON對(duì)象是否創(chuàng)建成功,如果失敗則返回1。
第13-18行,將JSON對(duì)象以JSON格式寫入到user.json文件中,并且使用JSON_INDENT(4)來格式化輸出,實(shí)現(xiàn)了可讀性更好的效果。如果文件打開成功,就可以關(guān)閉它;否則返回1。
第20行,使用json_decref釋放JSON對(duì)象占用的內(nèi)存。
上面的代碼只是一個(gè)簡(jiǎn)單的例子,它僅僅是將一個(gè)JSON對(duì)象寫入到文件中。在實(shí)際應(yīng)用中,需要根據(jù)具體情況來使用JSON庫來創(chuàng)建JSON對(duì)象、修改JSON對(duì)象、讀取JSON對(duì)象等。