jsonpath
jsonpath copied to clipboard
Single quotes are not supported
The JSONPath standard supports single-quotes for bracket notation (see here) but they fail with a syntax error:
m := map[string]interface{}{
"field": map[string]interface{}{
"sub-field": "hello",
},
}
value, err := jsonpath.Get("$.field['sub-field']", m)
// err is incorrectly set to `could not parse string: invalid syntax`
// the following case works correctly:
value, err := jsonpath.Get("$.field[\"sub-field\"]", m)
// err is nil, value is "hello"
Instead I'd expect this to work correctly.
This seems to be an issue of the Gval library, which is using the text/scanner go library, which does not use single quotes to indicate strings and as such throws an error. In go, single quotes indicate single characters only. As such, it's unlikely that text/scanner will be changed to accommodate this issue and should probably be solved in Gval.