在 C 語言中,寫出 JSON 文件非常方便,只需要用到一些簡(jiǎn)單的庫就可以輕松實(shí)現(xiàn)。
首先,需要引入一個(gè)名為 cJSON 的庫,它可以幫助我們將 C 語言中的數(shù)據(jù)轉(zhuǎn)換成 JSON 格式。可以從網(wǎng)站 https://github.com/DaveGamble/cJSON 上下載 cJSON 庫。
例如,使用 cJSON 庫,可以將一個(gè) C 語言中的結(jié)構(gòu)體轉(zhuǎn)換成 JSON 格式。如下所示:
typedef struct { int id; const char* name; double price; } Product; int main() { Product p = {1001, "Apple", 3.99}; cJSON* json = cJSON_CreateObject(); cJSON_AddNumberToObject(json, "id", p.id); cJSON_AddStringToObject(json, "name", p.name); cJSON_AddNumberToObject(json, "price", p.price); char* str = cJSON_Print(json); printf("JSON: %s\n", str); cJSON_Delete(json); free(str); return 0; }
在上面的代碼中,我們定義了一個(gè) Product 結(jié)構(gòu)體,表示商品的 id、名稱和價(jià)格。然后,使用 cJSON 庫中的函數(shù)將其轉(zhuǎn)換成了一個(gè) JSON 對(duì)象。其中,cJSON_CreateObject() 函數(shù)創(chuàng)建了一個(gè)空的 JSON 對(duì)象,然后 cJSON_AddNumberToObject() / cJSON_AddStringToObject() 函數(shù)向 JSON 對(duì)象中添加了字段和值。最后,使用 cJSON_Print() 函數(shù)將 JSON 對(duì)象轉(zhuǎn)換成了字符串,并通過 printf() 函數(shù)輸出結(jié)果。
值得注意的是,使用 cJSON 庫創(chuàng)建的 JSON 對(duì)象,需要手動(dòng)釋放內(nèi)存,即使用 cJSON_Delete() 函數(shù)來釋放。同時(shí),也需要手動(dòng)釋放通過 cJSON_Print() 函數(shù)返回的字符串。
在實(shí)際開發(fā)中,可以根據(jù)需要自定義更復(fù)雜的 JSON 對(duì)象。更多 cJSON 庫的使用方法,可以參考 cJSON 庫的官方文檔。