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

Can I serialize/deserialize JSON from protocol buffers with C++?

本文关键字:反序列化 JSON 序列化 缓冲区 C++ 协议 我可以      更新时间:2023-10-16

有一些Java和其他语言的框架可以帮助将协议缓冲区连接到JSON,但我还没有看到C++中的本地解决方案。

有没有一个库/框架可以用来将C++协议缓冲区对象连接到JSON?

我正在开发一个。我正在使用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到JSON的转换

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