C语言给定任一复杂结构体,自动转换为json
时间: 2024-01-30 22:06:08 浏览: 78
实现将一个复杂结构体转换为 JSON 格式的字符串,可以使用 C 语言中的第三方库 cJSON。这个库可以很方便地将 C 中的数据转化为 JSON 格式。
以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include "cJSON.h"
// 定义一个复杂的结构体
typedef struct {
int id;
char name[20];
double scores[3];
} Student;
int main() {
// 创建一个示例结构体
Student stu = {101, "Tom", {80.5, 90, 85.5}};
// 将结构体转换为 cJSON 对象
cJSON *root = cJSON_CreateObject();
cJSON_AddNumberToObject(root, "id", stu.id);
cJSON_AddStringToObject(root, "name", stu.name);
cJSON *scores = cJSON_CreateArray();
for (int i = 0; i < 3; i++) {
cJSON_AddItemToArray(scores, cJSON_CreateNumber(stu.scores[i]));
}
cJSON_AddItemToObject(root, "scores", scores);
// 将 cJSON 对象转换为字符串
char *json_str = cJSON_Print(root);
// 打印输出字符串
printf("JSON string: %s\n", json_str);
// 释放内存
cJSON_Delete(root);
free(json_str);
return 0;
}
```
这段代码将会把一个名为 `stu` 的结构体转换为 JSON 格式的字符串,并打印输出。如果你需要将任意复杂度的结构体转换为 JSON 格式,只需要按照这个示例代码的格式进行修改即可。
阅读全文