1 回答
TA贡献1798条经验 获得超3个赞
几周后,我一直在寻找解决这个问题的方法,并查看 unmarshaler 接口和示例。然后就像icza所说的那样,我开始查看类型之间约定的代码,然后我就这样解决了。如果你们有比我更好的答案,请添加答案。
数据:
[
{
"id":1,
"name":"Term 1",
"content": [
"a1",
"a2",
"a3"
]
}
]
结果:
[{ID:1 Name:Term 1 Content:[a1 a2 a3]}]
UnmarshalJSON 函数:
func (term *Term) UnmarshalJSON(data []byte) error {
tempMap := map[string]interface{}{}
if err := json.Unmarshal(data, &tempMap); err != nil {
return err
}
*term = Term{
Name: tempMap["name"].(string),
}
if tempMap["content"] != nil {
for _, v := range tempMap["content"].([]interface{}) {
(*term).Content = append((term).Content, v.(string))
}
}
return nil
}
- 1 回答
- 0 关注
- 119 浏览
添加回答
举报