Java 使用.proto模式将base64原型二进制文件转换为人类可读的(json/xml)

Java 使用.proto模式将base64原型二进制文件转换为人类可读的(json/xml),java,protocol-buffers,proto,Java,Protocol Buffers,Proto,我是谷歌Protobuf的新手。我想解决一个问题,但我在网上找不到答案,也许我问错了问题 我想构建一个使用.proto模式(以及生成的类)的工具,并将输入字符串从可读转换为base64字符串,反之亦然(使用java) 目的是调试消息。我不知道到底是哪条消息被编码的(所以要使用哪个类…) 请问我如何继续?你能给我一些建议、项目链接或任何可能对我有帮助的东西吗 编辑:目前,我将尝试对每个类使用ParseFromString函数,直到找到与base64 blob匹配的protobuf类 谢谢Proto

我是谷歌Protobuf的新手。我想解决一个问题,但我在网上找不到答案,也许我问错了问题

我想构建一个使用.proto模式(以及生成的类)的工具,并将输入字符串从可读转换为base64字符串,反之亦然(使用java) 目的是调试消息。我不知道到底是哪条消息被编码的(所以要使用哪个类…)

请问我如何继续?你能给我一些建议、项目链接或任何可能对我有帮助的东西吗

编辑:目前,我将尝试对每个类使用
ParseFromString
函数,直到找到与base64 blob匹配的protobuf类


谢谢

Protobuf可用于序列化一台机器上的数据,并将其发送到第二台机器,在那里将数据反序列化为原始格式

Protobuf使用自己的逻辑来序列化字符串、有符号/无符号数值等

因此,知道了这一点,protobuf不能/不应该被用作将事物转换为其他事物的转换器。它用于跨机器边界传输数据


也许您只是想将字符串转换为不带protobuf的BASE64表示形式?那么Thomas Timbul的提示可能会对您有用。

看看
java.util.Base64
。“我不认为这和Protobuf有任何关系。”汤马斯蒂姆布尔,首先,谢谢你的回答。。但是,当我使用Base64解码消息时,它并没有向我提供正确的人类可读字符串。我必须以某种方式将它与相应的protobuf类匹配,以读取清晰的值。这是您只需要做一次就可以识别类型的事情吗?还是你每次都要做的事?If once:protoc有一个显示数据布局的解码原始API。或者你可以使用