场景
golang 将数据从JSON解码为数据结构的时候,如果为空,或未设置,会变成null。
解决办法
方法 UnmarshalJSON
package jsonp
import "encoding/json"
type SpecialUser struct {
Mode string `json:"mode"` // 空时模式
Users []int `json:"users"` // 列出用户
}
func (o *SpecialUser) UnmarshalJSON(data []byte) (err error) {
type alias SpecialUser
var v alias
if err = json.Unmarshal(data, &v); err != nil {
return
}
if len(v.Users) == 0 {
v.Users = make([]int, 0)
}
o.Mode = v.Mode
o.Users = v.Users
return
}