2014-06-24 47 views
3

我有一個數據庫sql.NullBool。爲了解組json,我正在寫這個小函數。我可以將字節數組轉換爲字符串,只需簡單地將其轉換(字符串(數據))...對於布爾不是這樣。任何想法如何我可以轉換爲布爾?golang - 如何轉換字節切片到布爾?

type NullBool struct { 
    sql.NullBool 
} 

func (b *NullBool) UnmarshalJSON(data []byte) error { 
    b.Bool = bool(data) //BREAKS!! 
    b.Valid = true 
    return nil 
} 

回答

4

你幾乎可以直接使用json模塊。

func (nb *NullBool) UnmarshalJSON(data []byte) error { 
    err := json.Unmarshal(data, &nb.Bool) 
    nb.Valid = (err == nil) 
    return err 
} 
3

最簡單的方法是使用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 
}