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

c 中寫json

江奕云2年前8瀏覽0評論

在C語言中,寫JSON通常會使用第三方庫或自己實現(xiàn)一個庫來處理。

以下是一個示例JSON庫:

struct json_object {
enum { json_null, json_boolean, json_number, json_string, json_array, json_object } type;
union {
char *string;
double number;
struct json_object *array;
struct {
char *key;
struct json_object *value;
} object;
} data;
};
struct json_object *json_parse(char *json_string);
char *json_stringify(struct json_object *obj);
void json_free(struct json_object *obj);

使用這個庫,我們可以通過以下方式創(chuàng)建一個JSON對象:

struct json_object *obj = malloc(sizeof(struct json_object));
obj->type = json_object;
struct json_object *name = malloc(sizeof(struct json_object));
name->type = json_string;
name->data.string = strdup("John");
struct json_object *age = malloc(sizeof(struct json_object));
age->type = json_number;
age->data.number = 20;
struct json_object *person = malloc(sizeof(struct json_object));
person->type = json_object;
person->data.object.key = strdup("name");
person->data.object.value = name;
struct json_object *root = malloc(sizeof(struct json_object));
root->type = json_array;
root->data.array = malloc(sizeof(struct json_object) * 2);
root->data.array[0] = *person;
root->data.array[1] = *age;

使用json_stringify函數(shù)將JSON對象轉(zhuǎn)換為字符串,然后進(jìn)行輸出:

char *json_str = json_stringify(root);
printf("%s\n", json_str);
free(json_str);

輸出結(jié)果如下:

[{
"name": "John"
}, 20]

最后,使用json_free函數(shù)釋放JSON對象的內(nèi)存:

json_free(root);