在C語言中,有時(shí)我們需要將一個(gè)字典或鍵值對轉(zhuǎn)換成JSON格式的數(shù)據(jù),以便于傳輸或存儲。下面我們來看一下如何在C語言中將字典轉(zhuǎn)化成JSON。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { json_t *root = json_object(); //創(chuàng)建JSON對象 json_object_set_new(root, "name", json_string("張三")); //添加鍵值對 json_object_set_new(root, "age", json_integer(18)); char *json_str = json_dumps(root, JSON_INDENT(2)); //將JSON對象轉(zhuǎn)化成字符串 printf("JSON字符串為:%s\n", json_str); free(json_str); //釋放字符串內(nèi)存 json_decref(root); //釋放JSON對象內(nèi)存 return 0; }
上面的代碼中,我們首先使用json_object函數(shù)創(chuàng)建了一個(gè)空的JSON對象。然后使用json_object_set_new函數(shù)為這個(gè)對象添加了兩個(gè)鍵值對,一個(gè)是“name”鍵對應(yīng)的字符串值“張三”,另一個(gè)是“age”鍵對應(yīng)的整數(shù)值18。
接著,我們使用json_dumps函數(shù)將這個(gè)JSON對象轉(zhuǎn)化成一個(gè)JSON字符串,并使用JSON_INDENT宏設(shè)置了縮進(jìn)格式。最后將這個(gè)JSON字符串打印輸出了出來。
最后需要注意的是,我們需要在程序結(jié)束時(shí)釋放申請的內(nèi)存,使用json_decref函數(shù)釋放JSON對象內(nèi)存,使用free函數(shù)釋放字符串內(nèi)存。