forked from mirror/gjson
Merge branch 'wI2L-master'
This commit is contained in:
commit
1584ec68ff
7
gjson.go
7
gjson.go
|
@ -138,16 +138,17 @@ func (t Result) Float() float64 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Array returns back an array of children. The result must be a JSON array.
|
// Array returns back an array of children. If the result is not
|
||||||
|
// a JSON array, the return will be an array containing one result.
|
||||||
func (t Result) Array() []Result {
|
func (t Result) Array() []Result {
|
||||||
if t.Type != JSON {
|
if t.Type != JSON {
|
||||||
return nil
|
return []Result{t}
|
||||||
}
|
}
|
||||||
r := t.arrayOrMap('[', false)
|
r := t.arrayOrMap('[', false)
|
||||||
return r.a
|
return r.a
|
||||||
}
|
}
|
||||||
|
|
||||||
// Map returns back an map of children. The result should be a JSON array.
|
// Map returns back an map of children. The result should be a JSON array.
|
||||||
func (t Result) Map() map[string]Result {
|
func (t Result) Map() map[string]Result {
|
||||||
if t.Type != JSON {
|
if t.Type != JSON {
|
||||||
return map[string]Result{}
|
return map[string]Result{}
|
||||||
|
|
|
@ -445,6 +445,18 @@ func TestUnmarshalMap(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSingleArrayValue(t *testing.T) {
|
||||||
|
var json = `{"key": "value"}`
|
||||||
|
var result = Get(json, "key")
|
||||||
|
var array = result.Array()
|
||||||
|
if len(array) != 1 {
|
||||||
|
t.Fatal("array is empty")
|
||||||
|
}
|
||||||
|
if array[0].String() != "value" {
|
||||||
|
t.Fatal("got %s, should be %s", array[0].String(), "value")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
type BenchStruct struct {
|
type BenchStruct struct {
|
||||||
Widget struct {
|
Widget struct {
|
||||||
Window struct {
|
Window struct {
|
||||||
|
|
Loading…
Reference in New Issue