在c語言中,通過json序列化對象可以將對象轉換成json格式的字符串。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> int main() { char *json_str; json_t *root; root = json_pack("{s:s, s:i}", "name", "John", "age", 30); if (root == NULL) { return -1; } json_str = json_dumps(root, JSON_INDENT(4)); printf("%s\n", json_str); free(json_str); json_decref(root); return 0; }
在上述代碼中,首先需要引入jansson頭文件,然后定義了一個json_t類型的指針root,并通過json_pack函數將對象轉換成json格式。其中,"{s:s, s:i}"表示將一個字符串類型和一個整型類型組合成一個對象,其中"name"對應字符串類型的"John","age"對應整型類型的30。
接著,通過json_dumps函數將json_t類型的root指針轉換成json格式的字符串,并使用JSON_INDENT宏定義來實現縮進。最后,通過printf函數將json格式的字符串輸出到終端。需要注意的是,輸出結束后需要釋放json_str指針以及減少root指針的引用計數。
綜上所述,使用jansson庫可以方便地將c語言對象序列化成json格式的字符串。