当先锋百科网

首页 1 2 3 4 5 6 7

C语言是一门广泛应用于系统和网络编程的高级编程语言,其中的JSON序列化是一种广泛应用于网络通信、跨平台通信、以及数据存储的一种数据格式。C语言可以通过自定义结构体,并利用相关的序列化库来生成JSON字符串。

#include#include#include#includetypedef struct person {
char *name;
int age;
char *address;
} person_t;
int main() {
person_t *person1 = (person_t*)malloc(sizeof(person_t));
person1->name = "John";
person1->age = 30;
person1->address = "123 Main St.";
json_t *person_json = json_object();
json_object_set_new(person_json, "name", json_string(person1->name));
json_object_set_new(person_json, "age", json_integer(person1->age));
json_object_set_new(person_json, "address", json_string(person1->address));
char *json_string = json_dumps(person_json, JSON_INDENT(4));
printf("%s\n", json_string);
json_decref(person_json);
free(person1);
free(json_string);
return 0;
}

在上述的代码中,我们首先自定义了一个person_t结构体来表示一个人的信息。然后在main函数中,我们创建了一个person1实例,并赋值了相应的属性值。

接下来,我们使用jansson库中的json_object()函数来创建一个json_t类型的实例,并使用json_object_set_new()函数来设置该实例中的各个属性的值。在这里,我们使用了三个转换函数json_string()、json_integer()、json_string(),分别将name、age、address属性的值转换成JSON类型的字符串或者整型。

最后,我们使用json_dumps()函数将该json_t实例转换成JSON字符串,并设置了一个格式化选项JSON_INDENT(4),以便更加美观的输出。然后我们就可以将该JSON字符串输出到其他程序或者存储到文件中了。