欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

c 轉(zhuǎn)換json為類(lèi)

在C語(yǔ)言中,將JSON轉(zhuǎn)換成類(lèi)是一個(gè)很普遍的需求。JSON是一種用于存儲(chǔ)和交換數(shù)據(jù)的格式,而類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)的基本構(gòu)造,用于封裝特定的數(shù)據(jù)和行為。下面介紹一下如何在C語(yǔ)言中將JSON轉(zhuǎn)換成類(lèi)。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <jansson.h>
typedef struct Person {
char *name;
int age;
} Person;
int main() {
char *json_string = "{\"name\":\"Tom\",\"age\":25}";
json_t *root;
json_error_t error;
root = json_loads(json_string, 0, &error);
if (!root) {
fprintf(stderr, "error: on line %d: %s\n", error.line, error.text);
exit(1);
}
char *name = json_string_value(json_object_get(root, "name"));
int age = json_integer_value(json_object_get(root, "age"));
Person *person = (Person*) malloc(sizeof(Person));
person->name = name;
person->age = age;
printf("Name: %s\nAge: %d", person->name, person->age);
json_decref(root);
free(person);
return 0;
}

上面的代碼使用了jansson庫(kù)來(lái)處理JSON數(shù)據(jù)。首先,我們定義了一個(gè)名為Person的結(jié)構(gòu)體,其中包含一個(gè)字符串類(lèi)型的name和一個(gè)整型的age。接著,我們通過(guò)json_loads()函數(shù)將JSON字符串轉(zhuǎn)換成JSON對(duì)象,并使用json_object_get()函數(shù)獲取其中的name和age屬性。我們將這兩個(gè)屬性的值存儲(chǔ)到一個(gè)Person類(lèi)型的結(jié)構(gòu)體中,并輸出結(jié)果。

需要注意的是,name屬性的值需要使用json_string_value()函數(shù)獲取,而age屬性的值需要使用json_integer_value()函數(shù)獲取。此外,需要在程序結(jié)束時(shí)釋放Person結(jié)構(gòu)體的內(nèi)存,避免內(nèi)存泄漏。