在Golang中,JSON结构标记可以使用多个名称吗?
type Animation struct { Name string `json:"name"` Repeat int `json:"repeat"` Speed uint `json:"speed"` Pattern Pattern `json:"pattern",json:"frames"` }
请参阅如何在结构中定义多个名称标签,以了解如何在一个结构字段上定义多个标签。
您也可以使用a type Info map[string]interface{}代替您的结构。
type Info map[string]interface{}
或者,您可以在结构中使用这两种类型,并使用make方法Details()将返回正确的模式。
Details()
type Animation struct { Name string `json:"name"` Repeat int `json:"repeat"` Speed uint `json:"speed"` Pattern Pattern `json:"pattern"` Frame Pattern `json:"frames"` } func (a Animation) Details() Pattern { if a.Pattern == nil { return a.Frame } return a.Pattern }