在C语言中,序列化表示将数据结构转换为字符串的过程。而JSON是一种轻量级的数据交换格式,广泛应用于Web开发中。本文将介绍如何序列化C语言的list数据结构为JSON格式的字符串。
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <jansson.h> #define LENGTH 5 typedef struct _element { int id; char* name; } ELEMENT; int main() { int i; ELEMENT list[LENGTH] = {{1, "apple"}, {2, "banana"}, {3, "cherry"}, {4, "durian"}, {5, "elderberry"}}; json_t *root = json_array(); for (i = 0; i < LENGTH; i++) { json_t *element = json_object(); json_object_set_new(element, "id", json_integer(list[i].id)); json_object_set_new(element, "name", json_string(list[i].name)); json_array_append_new(root, element); } char *json_str = json_dumps(root, 0); printf("JSON string: %s\n", json_str); json_decref(root); free(json_str); return 0; }
代码中定义了一个包含5个元素的list结构体,每个元素包含一个整型id和一个字符串name,代表水果的编号和名称。首先创建一个json_t类型的数组对象root,然后循环遍历list中的元素,为每个元素创建一个json_t类型的对象element,并设置该对象中的id和name字段的值。最后将element添加到root中。最后使用json_dumps函数将root转换为JSON字符串,并输出该字符串。