C語(yǔ)言是一種廣泛應(yīng)用于系統(tǒng)編程、驅(qū)動(dòng)程序和嵌入式系統(tǒng)中的編程語(yǔ)言。它具有高效性、可移植性等優(yōu)點(diǎn)。在開(kāi)發(fā)過(guò)程中,我們經(jīng)常需要使用JSON格式來(lái)存儲(chǔ)數(shù)據(jù)。那么在C語(yǔ)言中如何保存JSON呢?
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(int argc, char** argv) { json_t *person = json_object(); json_object_set(person, "name", json_string("John")); json_object_set(person, "age", json_integer(30)); json_object_set(person, "married", json_boolean(0)); json_t *address = json_object(); json_object_set(address, "city", json_string("New York")); json_object_set(address, "state", json_string("NY")); json_object_set(person, "address", address); char *json_str = json_dumps(person, JSON_ENCODE_ANY); FILE *file = fopen("person.json", "w"); if (file == NULL) { printf("Failed to open file\n"); exit(1); } fwrite(json_str, strlen(json_str), 1, file); fclose(file); json_decref(person); free(json_str); return 0; }
首先,我們創(chuàng)建一個(gè)person的JSON對(duì)象。然后,我們使用“json_object_set”在該對(duì)象中添加數(shù)據(jù)。例如,我們可以添加一個(gè)字符串、一個(gè)整數(shù)和一個(gè)布爾值。我們還可以添加一個(gè)嵌套的JSON對(duì)象,例如一個(gè)地址對(duì)象。
接著,我們使用“json_dumps”函數(shù)將該對(duì)象轉(zhuǎn)換為JSON字符串。我們還使用“JSON_ENCODE_ANY”選項(xiàng)來(lái)讓編碼器選擇編碼方式,默認(rèn)的是UTF-8編碼。
最后,我們打開(kāi)一個(gè)文件并使用fwrite函數(shù)將JSON字符串寫(xiě)入該文件中。接著我們關(guān)閉文件并銷毀JSON對(duì)象。
以上是在C語(yǔ)言中保存JSON的簡(jiǎn)單示例。當(dāng)然,這只是冰山一角,JSON處理庫(kù)“jansson”提供了更多的功能和選項(xiàng),讀者可以查看官方文檔以獲取更多信息。