diff --git a/path/path.go b/path/path.go index 3dfe21e..7e578ba 100644 --- a/path/path.go +++ b/path/path.go @@ -35,6 +35,8 @@ func Split(p string) ([]any, bool) { state = unknown case ch == '.': state = propOrIndex + case ch == '[': + state = index default: return path, false } diff --git a/path/path_test.go b/path/path_test.go index 9360ed2..674e45f 100644 --- a/path/path_test.go +++ b/path/path_test.go @@ -77,6 +77,14 @@ func Test_SplitPath(t *testing.T) { input: ".foo['bar']['baz\\'']", want: []any{"foo", "bar", "baz\\'"}, }, + { + input: "[42]", + want: []any{42}, + }, + { + input: "[42].foo", + want: []any{42, "foo"}, + }, } for _, tt := range tests { t.Run(tt.input, func(t *testing.T) {