为map<string,重复map<string,string>>写protobuf
Posted
技术标签:
【中文标题】为map<string,重复map<string,string>>写protobuf【英文标题】:Write protobuf for map< string, repeated map <string, string > > 【发布时间】:2021-06-22 06:22:12 【问题描述】:
"response":
"status": [
"code": "red",
"text": "random sentence"
,
"code": "blue"
],
"recent": []
对于上面的 json,我想要正确的 protobuf 语法。下面只是一个大纲来展示这个想法。我知道下面的 proto 是行不通的。
syntax = 'proto3';
map< string, repeated map <string, string > > response = 1;
如何用 protobuf 语法写这个?
【问题讨论】:
【参考方案1】:你不能; map
右边的东西不能是 repeated
;取而代之的是 map<string, Foo>
用于一些 Foo
*hasa
repeated` 的东西。
老实说,我认为这里的关键问题是这句话:
对于上面的 json,我想要正确的 protobuf 语法。
Protobuf 不是通用的 JSON 工具;它选择的 JSON 强烈主张。如果你想映射预先存在的 JSON,那么 protobuf 不是适合你的工具;相反,请使用任何通用 JSON 工具 - 他们通常会使用它。相反,将 protobuf 视为一个序列化工具,恰好有一个 JSON 变体输出(除了主要的二进制输出),但它提供的 JSON 布局的灵活性很小。
【讨论】:
message Extra map以上是关于为map<string,重复map<string,string>>写protobuf的主要内容,如果未能解决你的问题,请参考以下文章
如何根据java中的内部映射键值之一对Map <String,Map <String,String>>进行排序[重复]
Firebase DocumentSnapshot.data() 返回对象?而不是 Map<String, dynamic> [重复]