在現代的程序開發中,經常需要使用 JSON 數據格式進行數據的傳輸與存儲。因此,在編寫 C 語言程序時,我們需要將 C 語言的數據結構轉換為 JSON 對象。
#include <stdio.h>
#include <jansson.h>
int main()
{
json_t *root = json_object(); // 創建一個 JSON 對象
json_t *array = json_array(); // 創建一個 JSON 數組
json_object_set_new(root, "name", json_string("Jack"));
json_object_set_new(root, "age", json_integer(22));
json_object_set_new(root, "isMale", json_boolean(1));
json_array_append_new(array, json_integer(1));
json_array_append_new(array, json_integer(2));
json_array_append_new(array, json_integer(3));
json_object_set_new(root, "numbers", array); // 在 JSON 對象中添加 JSON 數組
char *json_str = json_dumps(root, JSON_COMPACT);
printf("JSON object:\n%s\n", json_str);
free(json_str);
json_decref(root); // 釋放 JSON 對象
return 0;
}
以上代碼演示了如何使用 jansson 庫將 C 語言的數據結構轉換為 JSON 對象。使用 json_object_set_new 函數可以向 JSON 對象中添加鍵值對,其中鍵是字符串類型,值可以是字符串、整數、實數、布爾值、NULL 或者 JSON 對象、JSON 數組等。使用 json_array_append_new 函數可以向 JSON 數組中添加元素。
在最后,我們使用 json_dumps 函數將 JSON 對象轉換為字符串。json_dumps 函數第二個參數可以指定 JSON 字符串的格式,JSON_COMPACT 表示壓縮格式。
最后,使用 json_decref 函數釋放 JSON 對象。