c语言json结构体_C语言结构体转json格式的字符串(一)

这篇博客介绍如何将C语言的结构体转换为json格式的字符串。通过定义一个Student结构体,然后使用`s2j.h`库将结构体成员逐个添加到cJSON对象中,最终输出格式化的和非格式化的json字符串。示例代码展示了具体实现过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

核心思想:

将C语言结构体变量转化为json格式的字符串

#include "s2j.h"

#include 

#include 

//定义Student结构体类型

typedef struct {

uint8_t id;

double weight;

uint8_t score[8];

char name[10];

} Student;

//将结构体转化为cJSON对象

static cJSON *struct_to_json(void* struct_obj) {

Student *struct_student = (Student *)struct_obj;

s2j_create_json_obj(json_student);

s2j_json_set_basic_element(json_student, struct_student, int, id);

s2j_json_set_basic_element(json_student, struct_student, double, weight);

s2j_json_set_array_element(json_student, struct_student, int, score, 8);

s2j_json_set_basic_element(json_student, struct_student, string, name);

return json_student;

}

int main(void) {

//定义Student结构体类型变量

static Student student = {

.id = 24,

.weight = 71.2,

.score = { 1, 2, 3, 4, 5, 6, 7, 8 },

.name = "armink",

};

//将结构体Student类型变量student转化为cJSON对象

cJSON *json_student = struct_to_json(&student);

//输出不带格式的json字符串

char*json_string = cJSON_PrintUnformatted(json_student);

puts(json_string);

//输出带格式的json字符串

json_string = cJSON_Print(json_student);

printf("\n");

puts(json_string);

//销毁cJSON对象json_student

s2j_delete_json_obj(json_student);

return 0;

}

运行结果如图:

58b31d985ec4ee3baa57a063570bb1f7.png

交流群:599151072

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值