首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在map<string 3中建模map<string、map<string、int>>

如何在map<string 3中建模map<string、map<string、int>>
EN

Stack Overflow用户
提问于 2020-09-23 07:25:50
回答 1查看 117关注 0票数 0

我使用Go来实现一个API端点,该端点应该返回如下所示的数据:

代码语言:javascript
复制
{
    "object1s": [
        {
            "object2": {
                "key1": {
                    "key3": 1,
                    "key4": 2,
                    "key5": 3
                },
                "key2": {
                    "key3": 4,
                    "key4": 5,
                    "key5": 6
                }
            }
        },
        {
            "object2": {
                "key1": {
                    "key3": 7,
                    "key4": 8,
                    "key5": 9
                },
                "key2": {
                    "key3": 10,
                    "key4": 11,
                    "key5": 12
                }
            }
        }
    ]
}

我如何用proto3来建模呢?

我有这个:

代码语言:javascript
复制
message SubObject {
  map<string, map<string, int32>> object2 = 1;
}

message ResponseMessage {
  repeated SubObject object1s = 1;
}

但我认为语法map<string, map<string, int>>是无效的。那么,描述SubObject的正确方法是什么呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-23 09:00:08

你想要的方式还不被支持。

现在,唯一的方法是创建一个message类型来保存内部map字段。

代码语言:javascript
复制
message InnerObject {
    map<string, int32> object3 = 1;
}

message SubObject {
    map<string, InnerObject> object2 = 1;
}

message ResponseMessage {
    repeated SubObject object1s = 1;
}

因此,您必须修改您的返回数据如下,

代码语言:javascript
复制
{
    "object1s": [
        {
            "object2": {
                "key1": {
                    "object3": {
                        "key3": 1,
                        "key4": 2
                    }
                }
            }
        }
    ]
}

参考资料:Issue#4596

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64022996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档