在開發中,我們經常需要將C Model轉換為Json格式,方便前后端傳輸和處理。下面就介紹一下如何實現C Model轉Json。
#include <stdio.h> #include <stdlib.h> #include <stdbool.h> #include <string.h> #include <jansson.h> //需要使用到json-c庫 typedef struct student { char name[100]; int age; } Student; json_t* student_to_json(Student s); int main(int argc, char const *argv[]) { Student s; strcpy(s.name, "小明"); s.age = 20; json_t* json = student_to_json(s); char* str_json = json_dumps(json, JSON_INDENT(4)); //轉為字符串,方便查看 printf("json結果:%s\n", str_json); json_decref(json); //釋放內存 free(str_json); //釋放內存 return 0; } json_t* student_to_json(Student s) { json_t* root = json_object(); json_object_set_new(root, "name", json_string(s.name)); json_object_set_new(root, "age", json_integer(s.age)); return root; }
在上面的代碼中,我們定義了一個名為Student的結構體,用來表示一個學生。我們使用json-c庫,將結構體轉換為Json對象。
我們首選需要定義一個student_to_json函數,將Student結構體轉換為json_t類型的對象。在函數內部,我們使用json_object_set_new函數,將結構體的字段設置為Json對象的屬性。
在main函數中,我們構建一個Student對象,并調用student_to_json函數,獲取一個Json對象。接著,我們調用json_dumps將Json對象轉換為字符串,方便輸出結果。
最后別忘了釋放Json對象和字符串內存。