用protobuf子字段解组JSON消息
我从Kubernetes API接收到一个JSON blob,该API包含一个包含protobuf子字段的类型。由于protobuf包含用protobuf子字段解组JSON消息,json,go,protocol-buffers,Json,Go,Protocol Buffers,我从Kubernetes API接收到一个JSON blob,该API包含一个包含protobuf子字段的类型。由于protobuf包含一个字段,因此我必须使用golang/protobuf/jsonpb而不是encoding/json 我在这里简单地复制了这一点: 客户端.proto message Latency { oneof latency_type { StaticLatency static = 1; NormalLatency normal = 2; } }
一个
字段,因此我必须使用golang/protobuf/jsonpb
而不是encoding/json
我在这里简单地复制了这一点:
客户端.proto
message Latency {
oneof latency_type {
StaticLatency static = 1;
NormalLatency normal = 2;
}
}
客户端。转到:
type Metadata struct {
Name string `json:"name,omitempty"`
}
type LatencyWrapper struct {
Meta Metadata `json:"meta"`
Latency Latency `json:"latency"`
}
我怎样才能解组此邮件?我想我想要这样的东西:
func (lw *LatencyWrapper) UnmarshalJSON(b []byte) error {
var parts map[string]string = Something()
json.Unmarshal(parts["meta"], &lw.meta)
jsonpb.Unmarshal(parts["latency"], &lw.latency)
return nil
}
谢谢你的帮助
迈克尔