Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将proto3消息序列化为数组_Java_Serialization_Protocol Buffers - Fatal编程技术网

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

Java 如何将proto3消息序列化为数组,java,serialization,protocol-buffers,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; } 我还必须为数组类型键定义

我使用
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"
    }
  ]
}

是否有可能去掉多余的包装器消息?

鉴于协议缓冲区的主要用途不是JSON序列化/反序列化,答案是“否”