我有一个数据库sql.NullBool。为了将json解组到它中,我正在编写这个小函数。我可以通过简单地转换它来将字节数组转换为字符串(字符串(数据))......对于bool来说不是这样。知道如何转换为bool吗?
type NullBool struct {
sql.NullBool
}
func (b *NullBool) UnmarshalJSON(data []byte) error {
b.Bool = bool(data) //BREAKS!!
b.Valid = true
return nil
}
答案 0 :(得分:4)
您几乎可以直接使用json模块。
func (nb *NullBool) UnmarshalJSON(data []byte) error {
err := json.Unmarshal(data, &nb.Bool)
nb.Valid = (err == nil)
return err
}
答案 1 :(得分:4)
最简单的方法是使用strconv.ParseBool
包。像这样:
func (b *NullBool) UnmarshalJSON(data []byte) error {
var err error
b.Bool, err = strconv.ParseBool(string(data))
b.Valid = (err == nil)
return err
}
答案 2 :(得分:0)
它认为简单的方法是像这样检查切片长度:
b := []byte("data")
isByteSliceValid := len(b) != 0