我想解除元帅
var j = []byte(`[{"major":1},{"minor":0}]`)
到
type Version struct {
Major int `json:"major"`
Minor int `json:"minor"`
}
通过循环内部切片来使用自定义取消marshaler:
func (h *Version) UnmarshalJSON(b []byte) error {
var wrapper []json.RawMessage
err := json.Unmarshal(b, &wrapper)
if err == nil {
for _, v := range wrapper {
if err = json.Unmarshal(v, &h); err != nil {
break
}
}
}
return err
}
内部触发器UnmarshalJSON
json: cannot unmarshal object into Go value of type []json.RawMessage
这很奇怪,因为目标是.这是怎么回事?玩: https://play.golang.org/p/Av59IkYTioS*Version
跃然一笑
相关分类