【问题标题】:Converting base64 proto binary to human readable (json/xml) using .proto schema使用 .proto 模式将 base64 proto 二进制文件转换为人类可读的 (json/xml)
【发布时间】:2019-11-20 20:35:10
【问题描述】:

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

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

请问我该怎么做?你能给我一些指示,项目链接或任何可能对我有帮助的东西吗..

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

谢谢

【问题讨论】:

  • 看看java.util.Base64。我认为这与 Protobuf 没有任何关系。
  • @ThomasTimbul,首先,感谢您的回答.. 但是当我使用 Base64 解码消息时,它没有向我提供正确的人类可读字符串。我必须以某种方式将它与相应的 protobuf 类匹配以读取清晰的值..
  • 这是你只需要做一次,来识别类型吗?还是您每次都需要做的事情? If once: protoc 有一个显示数据布局的 decode-raw API。或者你可以使用protogen.marcgravell.com/decode

标签: java protocol-buffers proto


【解决方案1】:

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

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

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

也许您只是想在没有 protobuf 的情况下将字符串转换为 BASE64 表示?那么Thomas Timbul的提示可能对你有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 2021-11-06
    相关资源
    最近更新 更多