forked from mirror/gjson
Merge branch 'deef0000dragon1-deef0000dragon1-ParseBool'
This commit is contained in:
commit
eeddc5431f
3
gjson.go
3
gjson.go
|
@ -106,7 +106,8 @@ func (t Result) Bool() bool {
|
||||||
case True:
|
case True:
|
||||||
return true
|
return true
|
||||||
case String:
|
case String:
|
||||||
return t.Str != "" && t.Str != "0" && t.Str != "false"
|
b, err := strconv.ParseBool(t.Str)
|
||||||
|
return !(!b || err != nil)
|
||||||
case Number:
|
case Number:
|
||||||
return t.Num != 0
|
return t.Num != 0
|
||||||
}
|
}
|
||||||
|
|
|
@ -313,10 +313,25 @@ func TestTypes(t *testing.T) {
|
||||||
assert(t, (Result{Type: JSON}).Type.String() == "JSON")
|
assert(t, (Result{Type: JSON}).Type.String() == "JSON")
|
||||||
assert(t, (Result{Type: 100}).Type.String() == "")
|
assert(t, (Result{Type: 100}).Type.String() == "")
|
||||||
// bool
|
// bool
|
||||||
assert(t, (Result{Type: String, Str: "true"}).Bool())
|
|
||||||
assert(t, (Result{Type: True}).Bool())
|
assert(t, (Result{Type: True}).Bool())
|
||||||
assert(t, (Result{Type: False}).Bool() == false)
|
assert(t, (Result{Type: False}).Bool() == false)
|
||||||
assert(t, (Result{Type: Number, Num: 1}).Bool())
|
assert(t, (Result{Type: Number, Num: 1}).Bool())
|
||||||
|
assert(t, (Result{Type: String, Str: "1"}).Bool())
|
||||||
|
assert(t, (Result{Type: String, Str: "T"}).Bool())
|
||||||
|
assert(t, (Result{Type: String, Str: "t"}).Bool())
|
||||||
|
assert(t, (Result{Type: String, Str: "true"}).Bool())
|
||||||
|
assert(t, (Result{Type: String, Str: "True"}).Bool())
|
||||||
|
assert(t, (Result{Type: String, Str: "TRUE"}).Bool())
|
||||||
|
assert(t, (Result{Type: String, Str: "tRuE"}).Bool() == false)
|
||||||
|
assert(t, (Result{Type: String, Str: "0"}).Bool() == false)
|
||||||
|
assert(t, (Result{Type: String, Str: "f"}).Bool() == false)
|
||||||
|
assert(t, (Result{Type: String, Str: "F"}).Bool() == false)
|
||||||
|
assert(t, (Result{Type: String, Str: "false"}).Bool() == false)
|
||||||
|
assert(t, (Result{Type: String, Str: "False"}).Bool() == false)
|
||||||
|
assert(t, (Result{Type: String, Str: "FALSE"}).Bool() == false)
|
||||||
|
assert(t, (Result{Type: String, Str: "fAlSe"}).Bool() == false)
|
||||||
|
assert(t, (Result{Type: String, Str: "random"}).Bool() == false)
|
||||||
|
|
||||||
// int
|
// int
|
||||||
assert(t, (Result{Type: String, Str: "1"}).Int() == 1)
|
assert(t, (Result{Type: String, Str: "1"}).Int() == 1)
|
||||||
assert(t, (Result{Type: True}).Int() == 1)
|
assert(t, (Result{Type: True}).Int() == 1)
|
||||||
|
|
Loading…
Reference in New Issue