很多人都知道rapidjson这个json库,大家也都知道他的高效,可是你一定也对他的使用方法,函数API接口感受到非常不适应,你一定非常怀念使用java和C#对一个实体类的那么轻松加简单的直接json序列化,是的本篇博客将免费开源一个我自己平时做项目研发使用的一个RapidJsonHelper类,将帮你实现对一个C++实体类的的序列化和反序列化。
先贴上可完美可运行测试源码(含rapidjson库include)的下载地址:(评论者留邮箱不要积分额这是熟人通道)
先看一下如何使用我这个RapidjsonHelper帮助类
先创建两个实体类MyClass3和MyClass分别引用上RapidjsonHelper.h文件,继承好JsonBase这个父类,实现两个虚函数。
然后直接看主函数的例子主函数整个过程,看不到RapidJson的影子,这样以后即使换一个Json库,可以保持逻辑代码不用改,这样一个RapidJson库的二次封装就完成了,完美实现了对一个C++类的序列化和反序列化实现。
整个实现过程,主要利用C++ 模板和重载,宏和以及虚方法,实现完这个封装想了我足足一天,其实想让C++像别的高级语言一样轻松实现业务逻辑,需要做的事情,就是自己把低级的东西封装封装再封装。
关于这个封装,还有性能可以提升,JsonArray对象里面的实现现在是用list,但是其实应该自己实现一个更高效list。