【发布时间】:2018-04-13 23:09:25
【问题描述】:
将此 json 对象转换为 protobuf 的最佳方法是什么?
JSON:
{
"name": "test",
"_list": {
"some1": { "value": 1 },
"some2": [
{ "value": 2 },
{ "value": 3 },
]
}
}
原型:
message Something {
string name = 1;
message ListType {
repeated string = 1;
}
map<string, ListType> _list = 2;
}
如果消息中没有 _list,我会使用 jsonpb.Unmarsal,但我想不出一种方法来在 diff 包中生成的类型上定义 Unmarshaler 接口。
我还想过将_list 作为 Any (json.RawMessage) 并在 Unmarshal 之后处理它(但无法使其工作;错误消息:Any JSON doesn't have '@type')
【问题讨论】:
标签: go protocol-buffers grpc