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

c 中寫json

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

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

以下是一個示例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);

使用這個庫,我們可以通過以下方式創建一個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函數將JSON對象轉換為字符串,然后進行輸出:

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

輸出結果如下:

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

最后,使用json_free函數釋放JSON對象的內存:

json_free(root);