首页 > 代码库 > C结构体与Json字符串自动转换
C结构体与Json字符串自动转换
我们知道在Java中利用Gson这个包可以很方便地将Object和Json进行自动转换(串行化/反串行化)。其原理是利用了Java的反射机制。
最近我的项目中需要将C结构体与Json自动互转。项目背景其实是一个类似protobuf的json协议生成与解析,协议很多,所以我们肯定是希望从一个C结构体的对象自动转成Json,不然协议一条一条自己写,手筋要累断。
要实现这个需求,首先就要给C结构体加入反射机制。我的处理方法是让用户在定义结构体时,额外再定义一个metainfo,用于保存这个结构体的反射信息,如字段名,字段偏移位置等等。
这个实现我在github上发布了代码,项目名叫“cobj”,地址:https://github.com/xphh/cobj,上面README也挺好懂,虽然我写的E文也很累。另外test.c也是可以蛮快上手的。
通过cobj的规则生成的object目前支持:
int(整型)
CSTR(一种自定义的常量字符串,你可以看作是Java的String,不过得记得要自己释放内存。)
BOOL(从int直接typedef的,但是转成Json是true/false)
可以嵌套子结构体
支持int、CSTR、结构体的list(相当于支持泛型),实现为ArrayList
如果你正在找这样的东西,欢迎来使用cobj。
本文出自 “语冰” 博客,请务必保留此出处http://xphhhh.blog.51cto.com/7540829/1573856
C结构体与Json字符串自动转换
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。