C語言是一門廣泛應(yīng)用于系統(tǒng)和網(wǎng)絡(luò)編程的高級編程語言,其中的JSON序列化是一種廣泛應(yīng)用于網(wǎng)絡(luò)通信、跨平臺通信、以及數(shù)據(jù)存儲的一種數(shù)據(jù)格式。C語言可以通過自定義結(jié)構(gòu)體,并利用相關(guān)的序列化庫來生成JSON字符串。
#include#include #include #include typedef struct person { char *name; int age; char *address; } person_t; int main() { person_t *person1 = (person_t*)malloc(sizeof(person_t)); person1->name = "John"; person1->age = 30; person1->address = "123 Main St."; json_t *person_json = json_object(); json_object_set_new(person_json, "name", json_string(person1->name)); json_object_set_new(person_json, "age", json_integer(person1->age)); json_object_set_new(person_json, "address", json_string(person1->address)); char *json_string = json_dumps(person_json, JSON_INDENT(4)); printf("%s\n", json_string); json_decref(person_json); free(person1); free(json_string); return 0; }
在上述的代碼中,我們首先自定義了一個person_t結(jié)構(gòu)體來表示一個人的信息。然后在main函數(shù)中,我們創(chuàng)建了一個person1實例,并賦值了相應(yīng)的屬性值。
接下來,我們使用jansson庫中的json_object()函數(shù)來創(chuàng)建一個json_t類型的實例,并使用json_object_set_new()函數(shù)來設(shè)置該實例中的各個屬性的值。在這里,我們使用了三個轉(zhuǎn)換函數(shù)json_string()、json_integer()、json_string(),分別將name、age、address屬性的值轉(zhuǎn)換成JSON類型的字符串或者整型。
最后,我們使用json_dumps()函數(shù)將該json_t實例轉(zhuǎn)換成JSON字符串,并設(shè)置了一個格式化選項JSON_INDENT(4),以便更加美觀的輸出。然后我們就可以將該JSON字符串輸出到其他程序或者存儲到文件中了。