gpt4 book ai didi

java - 如何将 proto3 消息序列化为字符串并返回?

转载 作者:行者123 更新时间:2023-12-05 02:08:05 25 4
gpt4 key购买 nike

在 Java 中,我想将一个 proto3 消息转换成一个字符串:

  1. 我可以通过 HTTP 发送
  2. 随着更多字段被添加到原型(prototype)中,它仍然能够反序列化旧字符串吗?

如果你想知道为什么我需要序列化成一个字符串,我有一个原型(prototype):

message Order {
...
}

我想从中创建一个我想传递的字符串“order_tag”。

我看到了com.google.protobuf.TextFormat但它说它适用于 proto2,也没有说明向后兼容性。

最佳答案

您可以将消息序列化为字节,并使用base64编码将序列化后的值转换为字符串。这样,即使字段发生变化,只要架构更改发生在 https://developers.google.com/protocol-buffers/docs/proto3#updating 中定义的限制范围内,您就应该能够反序列化字符串。 .

除非出于调试目的,否则不要使用文本编码。它不提供与二进制格式相同的向后兼容性保证(例如,更改字段名称将破坏现有的序列化数据)。

序列化为字符串:

BaseEncoding.base64().encode(order.toByteArray())

反序列化:

Order.parseFrom(BaseEncoding.base64().decode(orderStr))

关于java - 如何将 proto3 消息序列化为字符串并返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61242789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com