在C語言中,我們經常需要將對象(比如結構體)轉化為JSON字符串,以便于在各種應用場景下傳遞和處理數據。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> typedef struct { char name[20]; int age; } Person; char* person_to_json(Person* p) { json_t* json_obj = json_object(); json_object_set_new(json_obj, "name", json_string(p->name)); json_object_set_new(json_obj, "age", json_integer(p->age)); char* json_str = json_dumps(json_obj, JSON_INDENT(4)); json_decref(json_obj); return json_str; } int main() { Person p = {"Tom", 25}; char* json_str = person_to_json(&p); printf("%s\n", json_str); free(json_str); return 0; }
上述代碼演示了將結構體Person轉換為JSON串的方法。我們包含了jansson庫,使用json_object()函數創建一個JSON對象,在將其轉換為字符串輸出。
我們可以在json_object_set_new()函數中設置鍵值對,以便將Person中的數據填充到JSON對象中。最終,使用json_dumps()函數將JSON對象轉換為字符串。
需要注意的是,在使用完畢后應該對JSON對象進行釋放(json_decref()函數)。