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

c json字符串轉換成類

錢瀠龍1年前8瀏覽0評論

C語言中,常常需要將JSON字符串轉換成相應的類進行處理,本文介紹一種實現該功能的方法。

首先,我們需要使用json-c這個開源庫來解析JSON字符串。具體步驟如下:

#include <json-c/json.h>
...
char *json_string = "{ \"name\": \"Tom\", \"age\": 20 }";
json_object *json_obj = json_tokener_parse(json_string);

解析得到的json_obj即為一個包含"name"和"age"兩個字段的json_object對象,我們可以通過以下代碼獲取對應的值:

json_object *name_obj = json_object_object_get(json_obj, "name");
const char *name = json_object_get_string(name_obj);
json_object *age_obj = json_object_object_get(json_obj, "age");
int age = json_object_get_int(age_obj);

接下來,我們需要定義一個對應的類來保存這些值:

typedef struct {
char *name;
int age;
} Person;

最后,我們可以將json_object對象的值賦給Person類的相應屬性:

Person person;
person.name = strdup(json_object_get_string(name_obj));
person.age = json_object_get_int(age_obj);

完整代碼示例:

#include <json-c/json.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char *name;
int age;
} Person;
int main() {
char *json_string = "{ \"name\": \"Tom\", \"age\": 20 }";
json_object *json_obj = json_tokener_parse(json_string);
json_object *name_obj = json_object_object_get(json_obj, "name");
json_object *age_obj = json_object_object_get(json_obj, "age");
Person person;
person.name = strdup(json_object_get_string(name_obj));
person.age = json_object_get_int(age_obj);
printf("name: %s\nage: %d\n", person.name, person.age);
free(person.name);
}