在開發過程中,經常需要將C語言中的字典(也叫map)轉化為JSON字符串,方便傳輸和存儲數據。下面將介紹一種簡單的實現方法。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main(int argc, char **argv) { //創建字典 json_t *dict = json_object(); json_object_set_new(dict, "name", json_string("張三")); json_object_set_new(dict, "age", json_integer(25)); json_object_set_new(dict, "gender", json_string("male")); json_object_set_new(dict, "married", json_true()); //將字典轉為JSON字符串 char *json_str = json_dumps(dict, JSON_INDENT(4)); printf("%s", json_str); //釋放內存 free(json_str); json_decref(dict); return 0; }
以上代碼中使用了jansson庫來轉化字典為JSON字符串。首先通過json_object()函數創建一個空字典,然后通過json_object_set_new()函數向字典中添加鍵值對。其中鍵使用字符串類型,值可以是字符串、整數、布爾等類型。
最后使用json_dumps()函數將字典轉為JSON字符串,JSON_INDENT(4)參數用于指定縮進字符和長度。json_str保存了轉化后的字符串,可以用于傳輸和存儲數據。
在釋放內存時需要使用free()函數釋放json_str指向的內存空間,使用json_decref()函數釋放字典對象占用的內存空間。