C 數據結構是許多程序員們常用的數據類型,而 JSON(JavaScript Object Notation)是一種輕量級的數據交換格式。在許多情況下,需要將 C 數據結構轉換為 JSON 格式,以便在不同平臺、不同語言之間傳遞數據。下面我們介紹如何將 C 數據結構轉換為 JSON 格式。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> typedef struct { char *name; int age; char *address; } Person; int main() { Person person = {"Tom", 18, "Beijing"}; json_t *json_obj = json_object(); json_object_set_new(json_obj, "name", json_string(person.name)); json_object_set_new(json_obj, "age", json_integer(person.age)); json_object_set_new(json_obj, "address", json_string(person.address)); char *json_str = json_dumps(json_obj, JSON_COMPACT | JSON_ENSURE_ASCII); printf("%s\n", json_str); json_decref(json_obj); free(json_str); return 0; }
首先,我們定義了一個 Person 結構體,并初始化了其中的一個實例。接下來,我們使用 jansson 庫中的 json_t 類型對象創建一個 JSON 對象。然后,在 JSON 對象中設置屬性值,通過 json_object_set_new 函數將 C 結構體中的屬性轉換為 JSON 對象的鍵值對。值得注意的是,我們要使用 jansson 庫中的 json_string 和 json_integer 函數將 C 結構體中的字符串和整數轉換為 JSON 中的字符串和數字。最后,我們使用 json_dumps 函數將 JSON 對象轉換為 JSON 字符串,并使用 printf 函數打印出來。
最后,一定要記得在使用完 jansson 庫的函數之后,及時釋放內存,以免造成內存泄漏。
上一篇vue中render詳解
下一篇python 畫經緯度