jmespath / jmespath/go-jmespath
json.Number format is not supported
- Dominant language
- Go
- Stars
- 621
- Forks
- 101
- PR merge metrics
- No merged PRs in 30d
Description
If json is Unmarshaled using json.Number format like:
```
my_map := make(map[string]interface{})
d := json.NewDecoder(strings.NewReader(json_raw))
d.UseNumber()
d.Decode(&my_map)
```
And then used to search:
```
var expr1 = jmespath.MustCompile("people[?age > `20`].[name, age]")
result, err := expr1.Search(my_map)
```
err is nil but the result is `[]` even though some objects must be returned. Removing the `d.UseNumber()` makes the Search work properly.
This is probably because this type assertion fails to recognize the value in the map as a Number (float): https://github.com/jmespath/go-jmespath/blob/master/interpreter.go#L48
json.Number is essentially a string. So either reflect/conversion library can be used here or type assertion should handle json.Number.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.