Fix up parser

This commit is contained in:
2025-03-25 10:38:12 +01:00
parent 7fc2956b6d
commit 533a563dc5

View File

@@ -1,4 +1,4 @@
package main
package jsonpath
import (
"fmt"
@@ -27,12 +27,14 @@ func ParseJSONPath(path string) ([]JSONStep, error) {
return nil, fmt.Errorf("path must start with $")
}
path = path[1:]
steps := []JSONStep{}
i := 0
for i < len(path) {
switch path[i] {
case '$':
steps = append(steps, JSONStep{Type: RootStep})
i++
case '.':
i++
if i < len(path) && path[i] == '.' {
@@ -51,7 +53,6 @@ func ParseJSONPath(path string) ([]JSONStep, error) {
}
i = nextPos
}
case '[':
// Index step
i++
@@ -66,7 +67,6 @@ func ParseJSONPath(path string) ([]JSONStep, error) {
steps = append(steps, JSONStep{Type: IndexStep, Index: index})
}
i = nextPos + 1 // Skip closing ]
default:
return nil, fmt.Errorf("unexpected character: %c", path[i])
}