protobuf与json互相转换,protobuf输出字符串
Java
http://code.google.com/p/protobuf-java-format/
maven
<dependency>
<groupId>com.googlecode.protobuf-java-format</groupId>
<artifactId>protobuf-java-format</artifactId>
<version>1.2</version>
</dependency>
从protobuf转json
Message someProto =SomeProto.getDefaultInstance(); String jsonFormat =JsonFormat.printToString(someProto);
从json转protobuf
Message.Builder builder =SomeProto.newBuilder(); String jsonFormat = _load json document from a source_; JsonFormat.merge(jsonFormat, builder);
C++
https://github.com/shramov/json2pb
---------------------------------------------------------------------------
Provide serialization and de-serialization of different formats based on Google’s protobuf Message. Enables overriding the default (byte array) output to text based formats such as XML, JSON and HTML.
Fork from http://code.google.com/p/protobuf-java-format
Description
Provide serialization and de-serialization of different formats based on Google’s protobuf Message. Enables overriding the default (byte array) output to text based formats such as XML, JSON and HTML.
##Example For XML output, use XmlFormat
Message someProto = SomeProto.getDefaultInstance();
String xmlFormat = XmlFormat.printToString(someProto);
For XML input, use XmlFormat
Message.Builder builder = SomeProto.newBuilder();
String xmlFormat = _load xml document from a source_;
XmlFormat.merge(xmlFormat, builder);
For Json output, use JsonFormat
Message someProto = SomeProto.getDefaultInstance();
String jsonFormat = JsonFormat.printToString(someProto);
For Json input, use JsonFormat
Message.Builder builder = SomeProto.newBuilder();
String jsonFormat = _load json document from a source_;
JsonFormat.merge(jsonFormat, builder);
For HTML output, use HtmlFormat
Message someProto = SomeProto.getDefaultInstance();
String htmlFormat = HtmlFormat.printToString(someProto);