在C語言中,我們經(jīng)常需要將JSON字符串轉(zhuǎn)換成相應的實體,以便進行后續(xù)的處理和操作。在這篇文章中,我們將介紹如何使用C語言實現(xiàn)JSON字符串到實體的轉(zhuǎn)換。
#include <stdio.h> #include <jansson.h> typedef struct student { char name[30]; int age; char gender[10]; } student; int main() { char *json_str = "{ \"name\": \"Helen\", \"age\": 20, \"gender\": \"female\" }"; json_t *root; json_error_t error; // 將JSON字符串解析為JSON對象 root = json_loads(json_str, 0, &error); if (!root) { fprintf(stderr, "error: on line %d: %s\n", error.line, error.text); return 1; } // 從JSON對象中獲取相應的值 student s; json_t *name = json_object_get(root, "name"); json_t *age = json_object_get(root, "age"); json_t *gender = json_object_get(root, "gender"); // 將值轉(zhuǎn)換為相應的類型 strcpy(s.name, json_string_value(name)); s.age = json_integer_value(age); strcpy(s.gender, json_string_value(gender)); printf("Student name: %s, age: %d, gender: %s\n", s.name, s.age, s.gender); // 釋放JSON對象內(nèi)存 json_decref(root); return 0; }
上述代碼中,我們使用了jansson庫提供的函數(shù)json_loads和json_object_get對JSON字符串進行解析和獲取JSON對象中的值。同時,我們還使用了json_string_value和json_integer_value將值轉(zhuǎn)換成相應的類型。
最后,我們成功地將JSON字符串轉(zhuǎn)換成了一個實體,代碼中的結(jié)構體student可以根據(jù)實際情況進行修改和調(diào)整。這種方法可以很好地應用于需要處理JSON格式數(shù)據(jù)的C語言項目中。
上一篇vue $data
下一篇h5json傳值接收