forked from mirror/gjson
parent
ba784d767a
commit
f92dbfc6b2
8
gjson.go
8
gjson.go
|
@ -383,9 +383,13 @@ func (t Result) arrayOrMap(vc byte, valueize bool) (r arrayOrMapResult) {
|
||||||
key = value
|
key = value
|
||||||
} else {
|
} else {
|
||||||
if valueize {
|
if valueize {
|
||||||
r.oi[key.Str] = value.Value()
|
if _, ok := r.oi[key.Str]; !ok {
|
||||||
|
r.oi[key.Str] = value.Value()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
r.o[key.Str] = value
|
if _, ok := r.o[key.Str]; !ok {
|
||||||
|
r.o[key.Str] = value
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
count++
|
count++
|
||||||
|
|
|
@ -1391,3 +1391,18 @@ func TestNumFloatString(t *testing.T) {
|
||||||
t.Fatalf("expected '%v', got '%v'", "-9007199254740993", res.String())
|
t.Fatalf("expected '%v', got '%v'", "-9007199254740993", res.String())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestDuplicateKeys(t *testing.T) {
|
||||||
|
// this is vaild json according to the JSON spec
|
||||||
|
var json = `{"name": "Alex","name": "Peter"}`
|
||||||
|
if Parse(json).Get("name").String() !=
|
||||||
|
Parse(json).Map()["name"].String() {
|
||||||
|
t.Fatalf("expected '%v', got '%v'",
|
||||||
|
Parse(json).Get("name").String(),
|
||||||
|
Parse(json).Map()["name"].String(),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if !Valid(json) {
|
||||||
|
t.Fatal("should be valid")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue