From 43cddfb114fead1460ac0550f927b6150d70591f Mon Sep 17 00:00:00 2001 From: itchyny Date: Thu, 25 Jul 2019 23:07:00 +0900 Subject: [PATCH] allow empty string key at the root object --- gojo_test.go | 4 ++-- parse.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gojo_test.go b/gojo_test.go index 58950f9..e77d021 100644 --- a/gojo_test.go +++ b/gojo_test.go @@ -111,8 +111,8 @@ func TestGojoRun(t *testing.T) { }, { name: "deep keys", - args: []string{`a[b][c]d=e`, `a[b][c][d]=f`, `b[c][d][][]=f`, `b[c][d][]=g`, `c[][][]=d`}, - expected: `{"a[b][c]d":"e","a":{"b":{"c":{"d":"f"}}},"b":{"c":{"d":[["f"],"g"]}},"c":[[["d"]]]} + args: []string{`a[b][c]d=e`, `a[b][c][d]=f`, `b[c][d][][]=f`, `b[c][d][]=g`, `c[][][]=d`, `[][][]=h`, `[][1][2]=i`}, + expected: `{"a[b][c]d":"e","a":{"b":{"c":{"d":"f"}}},"b":{"c":{"d":[["f"],"g"]}},"c":[[["d"]]],"":[[["h"]],{"1":{"2":"i"}}]} `, }, { diff --git a/parse.go b/parse.go index edfdf82..ddee739 100644 --- a/parse.go +++ b/parse.go @@ -73,7 +73,7 @@ func buildSetter(key string, value interface{}, inner bool) setter { } return &objectSetter{key, value} } - if i > 0 { + if i > 0 || !inner { s := buildSetter(key[i:], value, true) if s == nil { if inner {