我想将JSON中的0或者1 unmarshal成false或者true,没有头绪,想问问大家。 新手,感觉有点无从着手
```
if obj.EnabledGlobalColor {
}
```
V.S.
```
if obj.EnabledGlobalColor == 1 { }
```
个人觉得上面那种好。和1比较没有说服我。不过非常感谢你提供的建议。
#4
更多评论
不建议这么搞吧。真要搞,这里有一个思路
```go
package main
import "fmt"
import "encoding/json"
func main() {
var strjson = `{"isok":1,"name":"polaris"}`
var model = struct {
Name string `json:"name"`
IsOk intbool `json:"isok"`
}{}
err := json.Unmarshal([]byte(strjson), &model)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(model.IsOk, model.Name)
}
type intbool bool
func (this *intbool) UnmarshalJSON(data []byte) error {
if "1" == string(data) {
*this = intbool(true)
} else {
*this = intbool(false)
}
return nil
}
```
#1