C語(yǔ)言是一種廣泛應(yīng)用于系統(tǒng)編程、嵌入式系統(tǒng)和網(wǎng)絡(luò)編程等領(lǐng)域的高級(jí)編程語(yǔ)言。C語(yǔ)言代碼通常較為簡(jiǎn)單,執(zhí)行效率高,因此被越來(lái)越多的開(kāi)發(fā)者所青睞。在C語(yǔ)言中,讀取和保存JSON文件是常見(jiàn)的操作,下面我們就來(lái)看看如何實(shí)現(xiàn)這一過(guò)程。
C語(yǔ)言的JSON文件讀取和保存操作可以使用第三方庫(kù)cJSON。cJSON是一種輕巧快速的JSON解析器,提供了簡(jiǎn)單易用且高效的API,在C語(yǔ)言中讀取和保存JSON文件變得非常簡(jiǎn)單。下面是一個(gè)JSON文件讀取的示例:
#include "cJSON.h" #includeint main() { char *json_str = "{\"name\":\"Tom\",\"age\":20}"; cJSON *root = cJSON_Parse(json_str); cJSON *name = cJSON_GetObjectItem(root, "name"); cJSON *age = cJSON_GetObjectItem(root, "age"); printf("name:%s, age:%d", name->valuestring, age->valueint); cJSON_Delete(root); return 0; }
首先,我們需要快速解析JSON字符串,這里使用cJSON庫(kù)提供的cJSON_Parse()函數(shù)。然后我們可以使用cJSON_GetObjectItem()函數(shù)獲取JSON對(duì)象中的某個(gè)屬性,最后使用cJSON_Delete()函數(shù)釋放內(nèi)存。
除了讀取JSON文件,C語(yǔ)言中保存JSON文件也很常見(jiàn)。保存JSON文件通常使用文件操作相關(guān)API,這里我們介紹一種在cJSON中完成JSON文件保存的方法。
#include "cJSON.h" #includeint main() { cJSON *root = cJSON_CreateObject(); cJSON_AddStringToObject(root, "name", "Tom"); cJSON_AddNumberToObject(root, "age", 20); char *json_str = cJSON_Print(root); FILE *fp; fp = fopen("test.json", "w"); fputs(json_str, fp); fclose(fp); cJSON_Delete(root); return 0; }
我們使用cJSON_CreateObject()函數(shù)創(chuàng)建JSON對(duì)象,使用cJSON_AddStringToObject()和cJSON_AddNumberToObject()函數(shù)向JSON對(duì)象中添加屬性。接著使用cJSON_Print()函數(shù)將JSON對(duì)象轉(zhuǎn)換成字符串,之后使用文件操作相關(guān)APIfopen()和fputs()將字符串寫(xiě)入JSON文件中,最后使用cJSON_Delete()釋放內(nèi)存。