关于c++, serialization, json, xml, binary

本文介绍了作者在寻找C++对象与JSON结构转换类库过程中的经历,并最终发现了Cereal这款轻量级、易扩展且功能全面的序列化库。Cereal支持多种数据表示形式如JSON、XML等,并且对C++11标准及STL容器提供了良好支持。

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

有一段时间了,我开始寻找c++对象和json结构的转化类库

感谢开源社区的蓬勃发展,我在github,sf,codeplex上收获颇丰,简单了解一下包括大名鼎鼎的msgpack,ThorsSerializer,jsoncpp等等不下几十种实现,也亲自使用了其中几种类库。其中的差异化让我惊喜也让我越来越挑剔和贪得无厌

有不少是依赖强大的boost,多产生于c++11尚未推出之前,这类实现不够轻量

有的只能支持json,xml,binary中的一种或两种

有的对stl标准容器支持不够,或者干脆不支持

有的实现不够优雅简洁,类里面依赖各式各样的宏或者必须实现成员函数或者必须实现操作符重写,不够灵活(这里要表扬msgpack,接口简洁不冗余)

有的不支持复合数据类型

有的不能识别指针和对象,甚至不支持指针

有的扩展性不好

....

还有点奢望支持反射


有时间我就在网上搜相关的内容,也对一些活跃着的类库提交过一些想法,但作者认为不符合他们的初衷。有几次冲动想结合这些类库的优点“私人定制”

说了这么多,没错,主角就要登场了,今天偶然发现cereal,很低调的出现在google搜索里,首页介绍和其他类库也一个调调“cereal is a header-only C++11 serialization library. cereal takes arbitrary data types and reversibly turns them into different representations, such as compact binary encodings, XML, or JSON. cereal was designed to be fast, light-weight, and easy to extend - it has no external dependencies and can be easily bundled with other code or used standalone.”

但是我需要的特点他完全满足

好,剩下的时间就交给你们和cereal独处吧,不打扰了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kanbang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值