-
Notifications
You must be signed in to change notification settings - Fork 440
EachKey cannot extract from array of strings #232
Copy link
Copy link
Open
Description
The EachKey API does not work coherently to the Get one w.r.t array of strings.
Meaning that it does not work on paths like "request>headers>User-Agent>[0]", while Get does.
Here's a minimal reproducer:
package main
import (
"fmt"
"github.com/buger/jsonparser"
)
func main() {
data := []byte(`{"request":{"headers":{"User-Agent":["abc"]}}}`)
paths := [][]string{
[]string{"request", "headers", "User-Agent", "[0]"},
}
jsonparser.EachKey(data, func(idx int, val []byte, typ jsonparser.ValueType, err error) {
fmt.Printf("NO: val: %s / typ: %s / err: %s\n", val, typ, err)
}, paths...)
v, t, _, e := jsonparser.Get(data, paths[0]...)
fmt.Printf("OK: val: %s / typ: %s / err: %s\n", v, t, e)
}As you can see in the output EachKey fails while Get doesn't:
NO: val: / typ: unknown / err: Unknown value type
OK: val: abc / typ: string / err: %!s(<nil>)Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels