淘先锋技术网

首页 1 2 3 4 5 6 7

在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字符串,并输出该字符串。