我可以使用C ++从协议缓冲区序列化/反序列化JSON吗?

时间:2011-06-09 09:22:41

标签: c++ json protocol-buffers

Java和其他语言的框架有助于将协议缓冲区连接到JSON,但我还没有在C ++中看到过本机解决方案。

是否有可用于将C ++协议缓冲区对象连接到JSON的库/框架?

2 个答案:

答案 0 :(得分:1)

我正在开发一个。我正在使用protobuf的反射机制来解析任何生成的protobuf。在这里http://corbasim.googlecode.com/svn/trunk/protobuf2json_exported.zip,你可以找到这个想法的初步实现。它目前只是解析字符串字段,但我希望尽快支持任何类型。

对于消息Foo:

message Foo {
   optional string text = 1;
}

它可以通过这种方式解析Foo的实例:

Foo foo;

const std::string json_foo = "{\"text\": \"Hello world\"}";

protobuf2json::json::parse(foo, json_foo)

以同样的方式,我想从protobuf生成的类型中编写一个JSON序列化器。

这里有一个类似的问题:

C++ Protobuf to/from JSON conversion

答案 1 :(得分:1)

pb2json是另一个可以使用的库。