我正在使用grpc-gateway,我想用以下json响应公开一个api:
{
"id": "123",
"name": "MyItem",
"properties": {
"propA": 1,
"propB": "some value",
"propC": true,
}
}"properties“中的值是动态的,并且事先是未知的。
到目前为止,我的原型定义是:
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;
}但这会产生如下响应:
{
"id": "123",
"name": "MyItem",
"properties": {
"propA": {
"number_value": 1
},
"propB": {
"string_value": "some value"
},
"propC": {
"bool_value": true
}
}
}我如何修改我的proto,使属性以json map的形式返回,而不需要额外的类型信息?
发布于 2021-07-03 00:46:51
这个answer把我引向了google.protobuf.Struct。因此,我将我的信息更改为:
message Item {
string id = 1;
string name = 2;
google.protobuf.Struct properties = 3;
}这就达到了我想要的效果。
https://stackoverflow.com/questions/68218171
复制相似问题