dal*_*y42 3 java protocol-buffers
在 Java 中,我想将 proto3 消息转换为字符串:
如果您想知道为什么我需要序列化为字符串,我有一个原型:
message Order {
...
}
Run Code Online (Sandbox Code Playgroud)
我想从中创建一个要传递的字符串“order_tag”。
我看到了com.google.protobuf.TextFormat但它说它是针对 proto2 的,而且它也没有说明任何有关向后兼容性的信息。
您可以将消息序列化为字节,并使用 Base64 编码将序列化值转换为字符串。这样,即使字段发生变化,只要架构更改发生在https://developers.google.com/protocol-buffers/docs/proto3#updating中定义的限制范围内,您就应该能够反序列化字符串。
除调试目的外,请勿使用文本编码。它不提供与二进制格式相同的向后兼容性保证(例如,更改字段名称将破坏现有的序列化数据)。
序列化为字符串:
BaseEncoding.base64().encode(order.toByteArray())
Run Code Online (Sandbox Code Playgroud)
并反序列化:
Order.parseFrom(BaseEncoding.base64().decode(orderStr))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9431 次 |
| 最近记录: |