在使用C語言開發Web程序的時候,往往需要將實體對象轉換成JSON對象,便于后續的數據傳輸和使用。以下是一個簡單的實例,介紹如何在C語言中實現將實體轉換成JSON對象的方法。
#include <stdio.h> #include <string.h> #include <jansson.h> /** * 實體對象 */ typedef struct { char name[50]; int age; } Person; /** * 將Person對象轉換成JSON對象 */ json_t* person_to_json(Person p) { json_t *obj = json_object(); json_object_set_new(obj, "name", json_string(p.name)); json_object_set_new(obj, "age", json_integer(p.age)); return obj; } int main(int argc, char const *argv[]) { // 創建Person對象 Person p = {"Tom", 18}; // 將Person對象轉換成JSON對象 json_t *person_json = person_to_json(p); // 將JSON對象轉換成字符串 const char *json_str = json_dumps(person_json, JSON_ENCODE_ANY); // 打印JSON字符串 printf("%s\n", json_str); // 釋放JSON對象 json_decref(person_json); return 0; }
在上面的代碼中,首先定義了一個Person結構體,表示一個人的姓名和年齡。在此基礎上,定義了一個person_to_json函數,該函數接受一個Person對象作為參數,將其轉換成JSON對象。在該函數中,先創建一個空的JSON對象(使用json_object函數),然后依次將Person對象的name和age字段作為JSON對象的屬性添加進去(使用json_object_set_new函數)。最后返回這個JSON對象。
在主函數中,先創建了一個Person對象,然后調用person_to_json函數將其轉換成JSON對象。接著,使用json_dumps函數將JSON對象轉換成字符串。最后,打印JSON字符串,并釋放JSON對象的內存(使用json_decref函數)。
上一篇python 類 深拷貝
下一篇python 算排列組合