java - 如何将 proto3 消息序列化为数组

标签 java serialization protocol-buffers

我使用protoc 生成用于序列化数据的java 类。有时,例如,我希望我的 json 看起来像:

[
  {
    "foo": 1,
    "bar": "a"
  },
  {
    "foo": 2,
    "bar": "b"
  },
  {
    "foo": 3,
    "bar": "c"
  }
]

我将定义一个 protobuff 消息:

message Sample {
   uint64 foo = 1;
   string bar = 2;
}

我必须为数组类型键再定义一条消息:

message SampleResponse {
   repeated Sample keys = 1;
}

上面的 json 现在看起来像:

{
  "keys": [
    {
      "foo": 1,
      "bar": "a"
    },
    {
      "foo": 2,
      "bar": "b"
    },
    {
      "foo": 3,
      "bar": "c"
    }
  ]
}

是否有可能摆脱多余的包装消息?

最佳答案

鉴于 Protocol Buffer 的主要目的不是 JSON 序列化/反序列化,答案是“否”。

关于java - 如何将 proto3 消息序列化为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48406855/

相关文章:

java - Strictfp 在不同系统上返回不同结果

php序列化数据回javascript

go - 在 Go 中构建使用 "oneof"的 protobuf 消息

java - 使用 Java 在普通 TCP 客户端和 Netty 服务器之间交换 Protobuf 消息

java - 处理Spring Hibernate SQL错误的推荐方法

java - 创建 JAX-WS 客户端实例以访问服务时出现问题

java - 如何使用 Java 获取 CSRF Token 并将其传递到 Selenium WebDriver 中以实现网站自动化登录功能以防止自动化脚本

java - Android什么时候序列化对象?

java - 将 Java 3d 对象写入自定义文件类型

python - Tensorflow 从源代码构建,不能包含 contrib