C语言是一门广泛应用于系统和网络编程的高级编程语言,其中的JSON序列化是一种广泛应用于网络通信、跨平台通信、以及数据存储的一种数据格式。C语言可以通过自定义结构体,并利用相关的序列化库来生成JSON字符串。
#include#include #include #include typedef 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字符串输出到其他程序或者存储到文件中了。