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

时间:2018-01-23 16:45:40

标签: 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"
    }
  ]
}

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

1 个答案:

答案 0 :(得分:0)

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