首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用grpc-gateway返回json map值

使用grpc-gateway返回json map值
EN

Stack Overflow用户
提问于 2021-07-02 08:08:07
回答 1查看 26关注 0票数 0

我正在使用grpc-gateway,我想用以下json响应公开一个api:

代码语言:javascript
复制
{
  "id": "123",
  "name": "MyItem",
  "properties": {
    "propA": 1,
    "propB": "some value",
    "propC": true,
  }
}

"properties“中的值是动态的,并且事先是未知的。

到目前为止,我的原型定义是:

代码语言:javascript
复制
message Item {
  message PropertyValue {
    string string_value = 1;
    int32 number_value = 2;
    bool bool_value = 3;
  }
  
  string id = 1;
  string name = 2;
  map<string, PropertyValue> properties = 3; 
}

但这会产生如下响应:

代码语言:javascript
复制
{
  "id": "123",
  "name": "MyItem",
  "properties": {
    "propA": {
      "number_value": 1
    },
    "propB": {
      "string_value": "some value"
    },
    "propC": {
      "bool_value": true
    }
  }
}

我如何修改我的proto,使属性以json map的形式返回,而不需要额外的类型信息?

EN

回答 1

Stack Overflow用户

发布于 2021-07-03 00:46:51

这个answer把我引向了google.protobuf.Struct。因此,我将我的信息更改为:

代码语言:javascript
复制
message Item {
  string id = 1;
  string name = 2;
  google.protobuf.Struct properties = 3; 
}

这就达到了我想要的效果。

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

https://stackoverflow.com/questions/68218171

复制
相关文章

相似问题

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