我在一个模块中有以下结构:
type Event struct {
Name string `json:"name"`
Version string `json:"version"`
Payload interface{} `json:"payload"`
}
目标是,我可以接受任意结构,并使用一些消息传递服务将类型的最终结构作为json序列化字符串发送。PayloadEventjson.Marshal
但是,当我尝试在另一个项目中时,我无法访问 中的字段,因为 Go 显然不知道其最终类型。json.UnmarshalEvent.Payload
我试图使用这样的东西:
type EventPayload struct{
Name string `json:"name"`
}
// ...
event := &events.Event{}
event.Payload = &EventPayload{}
if err := json.Unmarshal(msg.Data, event); err != nil {
return err
}
event.Payload.Name // Won't work: "type interface{} has no field or method Status"
然而,Go仍然认为,那是一个.event.Payloadinterface{}
在这种情况下,我如何判断Go正确的结构类型?
精慕HU
一只甜甜圈
FFIVE
随时随地看视频慕课网APP
相关分类