在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:armink/struct2json开源软件地址:https://github.com/armink/struct2json开源编程语言:C 100.0%开源软件介绍:C结构体与 JSON 快速互转库struct2jsonstruct2json 是一个开源的C结构体与 JSON 快速互转库,它可以快速实现 结构体对象 与 JSON 对象 之间序列化及反序列化要求。快速、简洁的 API 设计,大大降低直接使用 JSON 解析库来实现此类功能的代码复杂度。 起源把面向对象设计应用到C语言中,是当下很流行的设计思想。由于C语言中没有类,所以一般使用结构体 对于C语言来说,序列化为 JSON 字符串是个不错的选择,所以就得使用 cJSON 这类 JSON 解析库,但是使用后的代码冗余且逻辑性差,所以萌生对cJSON库进行二次封装,实现一个 struct 与 JSON 之间快速互转的库。 struct2json 就诞生于此。下面是 struct2json 主要使用场景:
如何使用声明结构体如下声明了两个结构体,结构体 /* 籍贯 */
typedef struct {
char name[16];
} Hometown;
/* 学生 */
typedef struct {
uint8_t id;
uint8_t score[8];
char name[10];
double weight;
Hometown hometown;
} Student; 将结构体对象序列化为 JSON 对象
将 JSON 对象反序列化为结构体对象
V2.0版本新增功能【yuxuebao】1) 更新cJSON库至1.7.12版本,并扩充实现,支持int64 (long long)类型数据。PS:cJSON原来int64类型以double方式处理,如果超过16位会有精度损失。2) 扩展struct2json功能,增加支持结构体内包含结构体成员,支持包含数组成员。3) 增加struct2json 结构体与JSON转换代码自动生成的Python脚本,支持从头文件中提取结构体定义,并根据结构体定义自动生成结构体与JSON互转代码,并提供相关示例。V2.0 使用说明:1) 提取结构体定义:
2) 生成结构体与JSON互转代码:
3) 测试结构体与JSON转换:
*:json_cmp:1 欢迎大家 fork and pull request(Github|OSChina|Coding) 。如果觉得这个开源项目很赞,可以点击项目主页 右上角的Star,同时把它推荐给更多有需要的朋友。 文档具体内容参考 许可
MIT Copyright (c) [email protected] |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论