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

c json轉(zhuǎn)換為實(shí)體類對象

張吉惟2年前8瀏覽0評論

在使用C語言進(jìn)行JSON串轉(zhuǎn)換時,可以用CJSON庫快速地將JSON對象轉(zhuǎn)換為C語言對象。對于轉(zhuǎn)換后的C語言對象,如果需要對其進(jìn)行進(jìn)一步的操作和處理,可以將其轉(zhuǎn)換為實(shí)體類對象。下面是實(shí)現(xiàn)CJSON轉(zhuǎn)換為實(shí)體類對象的示例代碼:

#include#include#include "cJSON.h"
// 存放JSON對象的結(jié)構(gòu)體
typedef struct {
int id;
char name[128];
} Person;
// 將JSON對象轉(zhuǎn)換為Person結(jié)構(gòu)體對象
Person *jsonToPerson(cJSON *json) {
Person *person = malloc(sizeof(Person));
person->id = cJSON_GetObjectItem(json, "id")->valueint;
strcpy(person->name, cJSON_GetObjectItem(json, "name")->valuestring);
return person;
}
int main() {
// JSON串
char *jsonStr = "{ \"id\": 1, \"name\": \"Tom\" }";
// 從JSON串解析出JSON對象
cJSON *json = cJSON_Parse(jsonStr);
// 將JSON對象轉(zhuǎn)換為Person結(jié)構(gòu)體對象
Person *person = jsonToPerson(json);
// 打印Person結(jié)構(gòu)體對象的屬性值
printf("Person[id=%d, name=%s]\n", person->id, person->name);
// 釋放內(nèi)存
cJSON_Delete(json);
free(person);
return 0;
}

在這段示例代碼中,首先定義了一個Person結(jié)構(gòu)體用于存放JSON轉(zhuǎn)換后的C語言對象,其具有id和name兩個屬性。然后定義一個函數(shù)jsonToPerson,其輸入?yún)?shù)為cJSON指針類型的json對象,返回值為Person指針類型的person對象。在函數(shù)內(nèi)部,根據(jù)json對象對person對象的各個屬性進(jìn)行讀取和賦值,最后返回person對象。在主函數(shù)中,先將JSON串解析為json對象,再調(diào)用jsonToPerson函數(shù)將json對象轉(zhuǎn)換為Person對象,并輸出Person對象的屬性值。最后釋放內(nèi)存,程序結(jié)束。