C ++ JSON序列化,Proto-buf风格

时间:2015-06-04 08:18:47

标签: c++ json serialization

我想将几个C ++对象序列化为JSON,然后反序列化它们。显然,由于C ++缺乏反射,因此不能自动完成。我需要以某种方式告诉序列化器哪个数据成员进入哪个JSON属性。

我可以用C ++做到这一点,但我宁愿使用Protobuf的message来指定映射。在那里的许多JSON C ++库中,有没有一个支持某种元数据,允许我映射序列化过程而不是自己实现它?

2 个答案:

答案 0 :(得分:1)

您可以简单地使用JSON cpp或C文件并将它们用作API。这就是我为之前的项目所做的。 C ++没有内置的JSON支持,如JAVA。 因此包含文件并使用JSON函数作为API。您可以单独构建它并将其静态链接到您的程序。转到JSON主页以获取语言明智的文件:

http://json.org/

对于CPP文件: http://sourceforge.net/projects/jsoncpp/

我认为它转移到git repo。链接在那里。

希望这有帮助。

答案 1 :(得分:0)

OSS Nokalva的ASN.1工具支持ASN.1 schemae的JSON编码规则。

你编写了一个ASN.1模式(protobufs模式类似但是次要),将它编译成你想要的任何语言(在你的情况下是C ++),然后你得到了一堆可以串行到/来自JSON的类。

不自由我害怕。

ASN.1很棒 - 有各种各样的编码规则适合所有场合。