CJSON是一個(gè)非常流行的C語(yǔ)言JSON庫(kù),支持將JSON文本解析為C語(yǔ)言的數(shù)據(jù)結(jié)構(gòu),以及將C語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換為JSON文本。
在很多場(chǎng)景下,我們需要將C語(yǔ)言中的數(shù)據(jù)轉(zhuǎn)換為JSON格式并寫(xiě)入到文件中。CJSON提供了非常簡(jiǎn)單的接口來(lái)實(shí)現(xiàn)這個(gè)需求。
// 創(chuàng)建一個(gè)json對(duì)象 cJSON* root = cJSON_CreateObject(); // 給json對(duì)象添加一個(gè)鍵值對(duì) cJSON_AddStringToObject(root, "name", "CJson"); // 將json對(duì)象轉(zhuǎn)換為json文本 char* json_text = cJSON_Print(root); // 將json文本寫(xiě)入文件中 FILE* file = fopen("data.json", "w"); fwrite(json_text, strlen(json_text), 1, file); fclose(file); // 釋放json對(duì)象和json文本內(nèi)存 cJSON_Delete(root); free(json_text);
上述代碼首先創(chuàng)建了一個(gè)名為root的json對(duì)象,然后向該對(duì)象中添加了一個(gè)鍵名為name,鍵值為"CJson"的鍵值對(duì)。
接著,使用cJSON_Print函數(shù)將json對(duì)象轉(zhuǎn)換為json文本,并將結(jié)果保存在一個(gè)指針變量json_text中。
最后,打開(kāi)一個(gè)名為data.json的文件,使用fwrite函數(shù)將json文本寫(xiě)入文件中,并釋放掉之前分配的json對(duì)象和json文本內(nèi)存。
通過(guò)這樣的方法,我們可以很方便地將C語(yǔ)言中的數(shù)據(jù)轉(zhuǎn)換為JSON格式,并將其保存到文件中。