色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

c json解析并轉換成實體

傅智翔2年前8瀏覽0評論

在C語言中,我們經常需要對JSON格式的數據進行解析,并轉換成相應的實體,這里介紹一種使用cJSON庫進行JSON解析的方法。

首先需要引入cJSON頭文件:

#include "cJSON.h"

接著我們可以通過以下方式來讀取JSON數據:

char *json_string = "{\"name\":\"Tom\", \"age\":20}";
cJSON * root = cJSON_Parse(json_string);
if(!root){
printf("Error before: [%s]\n",cJSON_GetErrorPtr());
return -1;
}

解析成功后,可以通過以下方式來獲取JSON中的值:

cJSON *name = cJSON_GetObjectItem(root, "name");
if (!cJSON_IsString(name)){
printf("Error: name is not string\n");
return -1;
}
printf("name: %s\n", name->valuestring);

為了方便轉換成相應的實體對象,可以定義一個結構體,并通過以下方式將JSON數據轉換成結構體:

typedef struct {
char name[20];
int age;
} Person;
cJSON *name = cJSON_GetObjectItem(root, "name");
cJSON *age = cJSON_GetObjectItem(root, "age");
if (!cJSON_IsString(name)){
printf("Error: name is not string\n");
return -1;
}
if (!cJSON_IsNumber(age)){
printf("Error: age is not number\n");
return -1;
}
Person person;
strcpy(person.name, name->valuestring);
person.age = age->valueint;

有了這種方法,我們就可以方便地對JSON數據進行解析,并轉換成相應的實體對象了。