C語言是一種非常經(jīng)典的編程語言,它的應(yīng)用非常廣泛,在很多場合都需要使用到C語言編寫的代碼。而在現(xiàn)代互聯(lián)網(wǎng)應(yīng)用中,JSON成為了數(shù)據(jù)交互的標(biāo)準(zhǔn)格式之一。因此,學(xué)會C語言生成序列化JSON格式數(shù)據(jù)是非常有實際意義的。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(void) { json_t *root; json_error_t error; // 創(chuàng)建JSON對象 root = json_object(); // 添加鍵值對 json_object_set_new(root, "name", json_string("Tom")); json_object_set_new(root, "age", json_integer(30)); // 添加數(shù)組 json_t *array = json_array(); json_array_append_new(array, json_string("book1")); json_array_append_new(array, json_string("book2")); json_array_append_new(array, json_string("book3")); json_object_set_new(root, "books", array); // 輸出JSON字符串 char *json_str = json_dumps(root, 0); printf("%s\n", json_str); // 釋放內(nèi)存 free(json_str); json_decref(root); return 0; }
使用json_t結(jié)構(gòu)體來存儲JSON對象,可以通過json_object_set_new函數(shù)來給JSON對象添加鍵值對,通過json_array_append_new函數(shù)來給JSON對象添加數(shù)組。上面代碼中,我們添加了一個簡單的JSON對象,鍵包括“name”和“age”,值分別為字符串和整數(shù)。同時,我們還添加了一個“books”鍵,并給其賦值一個數(shù)組。
最終,我們使用json_dumps函數(shù)將JSON對象轉(zhuǎn)換成JSON字符串,并使用printf函數(shù)輸出JSON字符串。同時,記得在最后釋放內(nèi)存,通過json_decref函數(shù)來釋放JSON對象內(nèi)存。