C JSON轉類是一種將JSON格式的數據轉換為類對象的方法。在C語言中,JSON格式的數據通常以字符串的形式存在,為了方便地處理這些數據,需要將其轉換為類對象。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> //定義類 typedef struct { char *name; int age; } Person; //將json字符串轉換成類對象 Person *json_to_person(const char *json_str) { Person *person = NULL; json_t *root; json_error_t error; root = json_loads(json_str, 0, &error); if(!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); exit(1); } person = (Person*)malloc(sizeof(Person)); person->name = strdup(json_string_value(json_object_get(root, "name"))); person->age = json_integer_value(json_object_get(root, "age")); json_decref(root); return person; } int main() { const char *json_str = "{\"name\":\"Tom\",\"age\":22}"; Person *person = NULL; person = json_to_person(json_str); printf("name:%s, age:%d\n", person->name, person->age); free(person->name); free(person); return 0; }
在上述例子中,首先定義了一個名為Person的結構體,其中包含了兩個成員變量name和age。接著,定義了一個函數json_to_person,該函數接收一個json字符串作為參數。在函數中使用jansson庫中的json_loads函數將json字符串轉換為json_t對象。然后,將json_t對象中的內容轉換為Person對象并返回
最后,在main函數中調用了json_to_person函數,將json字符串轉換為Person對象,并輸出其中的成員變量。完成后,需要釋放Person對象中的內存。