json - 'oneof' protobuf 字段的预期 JSON 序列化是什么?

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

我应该期待什么?

最佳答案

我编写了一些测试代码,它表明第一个是正确的。

关于json - 'oneof' protobuf 字段的预期 JSON 序列化是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44069789/

相关文章:

c# - Json.NET:反序列化对象列表

json - 是否可以使用 JsonReaderWriterFactory 将 XML 转换为 JSON,而不使用 DataContractJsonSerializer?

sql - PostgreSQL 可以在 jsonb 数组对象上加入吗?

javascript - JS 和 iOS 之间的类型安全

python - 如何在 Tensorflow 中显示隐藏层输出

json - 如何从 typescript 中的 json 获取串联键列表

javascript - 客户端接收json对象到javascript

android - 如何正确地将数据从Android发送到Flutter?

c++ - 在导入的 .proto 文件中扩展 protobuf.FieldOptions

python - 如何从 Google 的 AudioSet 中提取音频嵌入(特征)?