C JSON轉換class是一種將JSON格式數據轉換成class的方法,可用于解析接收到的JSON數據,以便可以更方便地使用。在使用這種方法時,我們需要首先將JSON數據進行解析,然后將解析出來的數據賦值給需要轉換的class對象。以下是一個使用C語言實現JSON轉換class功能的例子。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> typedef struct{ char* name; int id; char* major; } Student; void jsonToClass(char* jsonStr, Student* student){ json_t* root; json_error_t error; root = json_loads(jsonStr, 0, &error); if(!root){ fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); exit(1); } json_t* nameJson, *idJson, *majorJson; nameJson = json_object_get(root, "name"); idJson = json_object_get(root, "id"); majorJson = json_object_get(root, "major"); student->name = strdup(json_string_value(nameJson)); student->id = json_integer_value(idJson); student->major = strdup(json_string_value(majorJson)); json_decref(root); } int main(){ char* jsonStr = "{\"name\":\"Tom\",\"id\":123,\"major\":\"Computer Science\"}"; Student student; jsonToClass(jsonStr, &student); printf("Name: %s\n", student.name); printf("ID: %d\n", student.id); printf("Major: %s\n", student.major); free(student.name); free(student.major); return 0; }
在這個例子中,我們定義了一個名為Student的結構體,代表一個我的學生對象。然后我們定義了一個jsonToClass函數,將JSON格式的字符串轉換為我們的Student結構體對象。在這個函數中,我們首先使用json_loads函數將字符串解析為json_t對象,然后使用json_object_get函數獲取name、id和major這三個JSON屬性的值,并將它們分別賦值給我們的Student對象。最后,我們使用json_decref函數釋放已經解析的JSON對象。
在我們的主函數中,我們定義了一個JSON格式的字符串,然后在這個字符串上調用jsonToClass函數,將JSON格式的數據轉換為我們的Student對象。最后,我們打印出學生的姓名、ID和專業,并調用free函數釋放之前分配的內存。
上一篇python 帶圖片打包
下一篇vue isback