什么是预期的JSON序列化' oneof' protobuf field?

时间:2017-05-19 12:12:05

标签: json protocol-buffers

假设我有一个结构如下的.proto:

syntax = "proto3";

message Foo {
  ...
}
message Bar {
  ...
}

message Msg {
  string baz = 1;
  oneof some_union {
     Foo foo = 2;
     Bar bar = 3;
  }
}

序列化此类邮件的预期方式是什么? 规范的JSON Mapping部分不是很清楚。

我可以看到至少两种表示方式,哪种方式正确?

第一种方式:在"顶级"中有一个元素,忽略其他元素:

{
  "baz" : 0,
  "foo" : { ... }
}

第二种方式:拥有一个" unmbrella"具有联合名称的属性,并给它一个字段。

{
  "baz" : 0,
  "some_union": {
    "foo" : { .... }
  }
}

我应该期待什么?

1 个答案:

答案 0 :(得分:1)

我写了一些测试代码,它显示第一个是正确的。