forked from mirror/gjson
Mention nested queries
This commit is contained in:
parent
1e964df7d9
commit
dea71f728d
|
@ -71,9 +71,9 @@ The dot and wildcard characters can be escaped with '\\'.
|
||||||
"children": ["Sara","Alex","Jack"],
|
"children": ["Sara","Alex","Jack"],
|
||||||
"fav.movie": "Deer Hunter",
|
"fav.movie": "Deer Hunter",
|
||||||
"friends": [
|
"friends": [
|
||||||
{"first": "Dale", "last": "Murphy", "age": 44},
|
{"first": "Dale", "last": "Murphy", "age": 44, "nets": ["ig", "fb", "tw"]},
|
||||||
{"first": "Roger", "last": "Craig", "age": 68},
|
{"first": "Roger", "last": "Craig", "age": 68, "nets": ["fb", "tw"]},
|
||||||
{"first": "Jane", "last": "Murphy", "age": 47}
|
{"first": "Jane", "last": "Murphy", "age": 47, "nets": ["ig", "tw"]}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -95,13 +95,13 @@ matches with `#(...)#`. Queries support the `==`, `!=`, `<`, `<=`, `>`, `>=`
|
||||||
comparison operators and the simple pattern matching `%` (like) and `!%`
|
comparison operators and the simple pattern matching `%` (like) and `!%`
|
||||||
(not like) operators.
|
(not like) operators.
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
friends.#(last=="Murphy").first >> "Dale"
|
friends.#(last=="Murphy").first >> "Dale"
|
||||||
friends.#(last=="Murphy")#.first >> ["Dale","Jane"]
|
friends.#(last=="Murphy")#.first >> ["Dale","Jane"]
|
||||||
friends.#(age>45)#.last >> ["Craig","Murphy"]
|
friends.#(age>45)#.last >> ["Craig","Murphy"]
|
||||||
friends.#(first%"D*").last >> "Murphy"
|
friends.#(first%"D*").last >> "Murphy"
|
||||||
friends.#(first!%"D*").last >> "Craig"
|
friends.#(first!%"D*").last >> "Craig"
|
||||||
|
friends.#(nets.#(=="fb"))#.first >> ["Dale","Roger"]
|
||||||
```
|
```
|
||||||
|
|
||||||
*Please note that prior to v1.3.0, queries used the `#[...]` brackets. This was
|
*Please note that prior to v1.3.0, queries used the `#[...]` brackets. This was
|
||||||
|
|
13
SYNTAX.md
13
SYNTAX.md
|
@ -34,9 +34,9 @@ Given this JSON
|
||||||
"children": ["Sara","Alex","Jack"],
|
"children": ["Sara","Alex","Jack"],
|
||||||
"fav.movie": "Deer Hunter",
|
"fav.movie": "Deer Hunter",
|
||||||
"friends": [
|
"friends": [
|
||||||
{"first": "Dale", "last": "Murphy", "age": 44},
|
{"first": "Dale", "last": "Murphy", "age": 44, "nets": ["ig", "fb", "tw"]},
|
||||||
{"first": "Roger", "last": "Craig", "age": 68},
|
{"first": "Roger", "last": "Craig", "age": 68, "nets": ["fb", "tw"]},
|
||||||
{"first": "Jane", "last": "Murphy", "age": 47}
|
{"first": "Jane", "last": "Murphy", "age": 47, "nets": ["ig", "tw"]}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
@ -76,7 +76,6 @@ Special purpose characters, such as `.`, `*`, and `?` can be escaped with `\`.
|
||||||
fav\.movie "Deer Hunter"
|
fav\.movie "Deer Hunter"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### Arrays
|
### Arrays
|
||||||
|
|
||||||
The `#` character allows for digging into JSON Arrays.
|
The `#` character allows for digging into JSON Arrays.
|
||||||
|
@ -109,6 +108,12 @@ children.#(!%"*a*") "Alex"
|
||||||
children.#(%"*a*")# ["Sara","Jack"]
|
children.#(%"*a*")# ["Sara","Jack"]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Nested queries are allowed.
|
||||||
|
|
||||||
|
```go
|
||||||
|
friends.#(nets.#(=="fb"))#.first >> ["Dale","Roger"]
|
||||||
|
```
|
||||||
|
|
||||||
*Please note that prior to v1.3.0, queries used the `#[...]` brackets. This was
|
*Please note that prior to v1.3.0, queries used the `#[...]` brackets. This was
|
||||||
changed in v1.3.0 as to avoid confusion with the new [multipath](#multipaths)
|
changed in v1.3.0 as to avoid confusion with the new [multipath](#multipaths)
|
||||||
syntax. For backwards compatibility, `#[...]` will continue to work until the
|
syntax. For backwards compatibility, `#[...]` will continue to work until the
|
||||||
|
|
Loading…
Reference in New Issue