#
Array slice

$[1:3] 
✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice on exact match

$[0:5] 
✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice on non overlapping array

$[7:10] 
✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice on object

$[1:3] 
✓

✓

e

✓

✓

e

✗

✓

e

✓

✓

✓

e

✓

✓

e

✗

✓

✓

✓

✓

✗

✓

✗

✗

✓

✓

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✗

✓

✓

#
Array slice on partially overlapping array

$[1:10] 
✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with large number for end

$[2:113667776004] 
✓

e

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

e

✓

✓

✓

✓

e

✗

✗

✓

✓

✓

✓

e

e

✓

✓

e

✓

✗

✓

✓

e

e

✓

✓

✗

✓

✓

#
Array slice with large number for end and negative step

$[2:113667776004:1] 
➚

➚

➘

➘

➚

e

➚

➘

➘

➚

➘

➘

e

➘

➘

➚

➚

➘

➘

➚

➘

➘

➘

➚

➚

➘

➘

➚

➚

➘

➘

e

➘

e

➘

➘

e

e

e

➚

➘

➘

➘

#
Array slice with large number for start

$[113667776004:2] 
✓

e

e

✓

✓

✗

✗

✓

✓

✓

✓

✓

e

✓

✓

e

✓

✓

✓

✓

e

✗

✗

e

✓

✓

✓

✓

e

✓

✓

✓

✗

✗

✗

✓

e

e

✓

✓

✗

✓

✓

#
Array slice with large number for start end negative step

$[113667776004:2:1] 
➚

➚

e

➘

➚

e

➚

➘

➘

➚

➘

➚

e

➘

➘

➚

➚

➘

e

➚

➘

➘

➘

➚

➚

➘

➘

➚

➚

➘

➘

e

➘

e

➘

➘

e

e

e

➚

➘

➘

➘

#
Array slice with negative start and end and range of 1

$[4:5] 
✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

#
Array slice with negative start and end and range of 0

$[4:4] 
✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

#
Array slice with negative start and end and range of 1

$[4:3] 
✗

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with negative start and positive end and range of 1

$[4:1] 
✓

✗

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✗

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

#
Array slice with negative start and positive end and range of 0

$[4:2] 
✓

✗

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✗

✗

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

✗

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

#
Array slice with negative start and positive end and range of 1

$[4:3] 
✗

✗

✗

✓

✓

✗

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✗

✗

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with negative step

$[3:0:2] 
➘

➘

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

#
Array slice with negative step on partially overlapping array

$[7:3:1] 
➚

➚

e

➘

➚

e

➚

➘

➘

➚

➘

➚

e

➘

➘

➚

➚

➘

e

➚

➘

➚

➚

➚

➚

➘

➘

➚

➚

➘

➘

➘

➘

e

➘

➘

➘

➘

➘

➚

e

➘

➘

#
Array slice with negative step and start greater than end

$[0:3:2] 
➘

e

➘

➚

➚

e

➚

➘

➘

➘

➚

➚

e

➚

➚

➘

➚

➚

➚

➚

➘

➘

➘

➘

e

➚

➚

e

➘

➚

➘

➚

➘

e

➘

➘

➚

➚

➘

➚

➚

➚

➚

#
Array slice with negative step only

$[::2] 
➘

➘

➘

➚

➘

e

➘

➘

➘

➚

➚

➘

e

➚

➚

e

➘

➚

➚

➘

➘

➘

➘

➘

e

➚

➚

e

➘

➘

➘

➘

➘

e

➘

➘

➚

➚

➘

➘

➘

➚

➚

#
Array slice with open end

$[1:] 
✓

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with open end and negative step

$[3::1] 
➘

➘

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

e

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➘

e

➘

➘

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

#
Array slice with open start

$[:2] 
✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with open start and end

$[:] 
✓

✗

e

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

✓

✓

e

✓

✓

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with open start and end on object

$[:] 
✗

✓

e

✓

✓

e

✗

✓

e

✓

✓

✓

e

✓

✓

✗

✗

✓

✓

✓

✓

✗

✓

✗

✗

✓

✓

✓

e

✗

✗

✓

✗

✗

✗

✓

✓

✓

✓

✗

✗

✓

✓

#
Array slice with open start and end and step empty

$[::] 
✓

✗

e

✓

✓

✓

✗

✓

✗

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

✓

✗

✗

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with open start and negative step

$[:2:1] 
➘

e

➘

➚

➘

e

➘

➘

➘

➘

➚

➘

e

➚

➚

➘

➘

➚

➚

➘

➘

➘

➘

➘

e

➚

➚

e

➘

➘

➘

➘

➘

e

➘

➘

➚

➚

➘

➘

➘

➚

➚

#
Array slice with positive start and negative end and range of 1

$[3:4] 
✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

#
Array slice with positive start and negative end and range of 0

$[3:3] 
✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

#
Array slice with positive start and negative end and range of 1

$[3:2] 
✗

✗

✗

✓

✓

✓

✗

✓

✓

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✗

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

✗

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with range of 1

$[2:1] 
✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

#
Array slice with range of 0

$[0:0] 
✗

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✗

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

#
Array slice with range of 1

$[0:1] 
✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with start 1 and open end

$[1:] 
✗

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with start 2 and open end

$[2:] 
✗

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with start large negative number and open end on short array

$[4:] 
✓

✓

e

✓

✓

✗

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with step

$[0:3:2] 
✓

e

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✗

✗

✗

✗

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with step 0

$[0:3:0] 
➘

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

e

e

➘

e

e

e

e

➘

➘

➘

➘

➘

➘

e

➘

➘

e

e

➘

e

➘

e

➘

e

e

➘

➘

e

➘

➘

➘

#
Array slice with step 1

$[0:3:1] 
✓

e

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with step and leading zeros

$[010:024:010] 
✗

✓

✗

✗

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

e

✗

✓

✗

✗

✗

✗

✗

✓

✗

✓

✓

✓

✗

✗

✗

✗

✗

✓

✓

✓

✓

✓

✓

✗

✗

#
Array slice with step but end not aligned

$[0:4:2] 
✓

e

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✗

✗

✗

✗

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with step empty

$[1:3:] 
✓

✗

✗

✓

✓

✓

✗

✓

✗

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Array slice with step only

$[::2] 
✓

✗

✗

✓

✓

✓

✗

✓

✗

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✗

✗

✗

✗

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation

$['key'] 
✓

✓

e

✓

✓

✓

✗

✓

✓

✗

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation on object without key

$['missing'] 
✓

✓

e

✓

✓

✓

✓

✓

✓

✗

e

✓

e

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation after recursive descent
⁴

$..[0] 
✗

✗

e

✓

✓

✗

✗

✓

✗

✓

✓

✓

e

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

e

✓

✗

e

✗

✓

✗

✗

✗

✓

✓

✗

✓

#
Bracket notation with NFC path on NFD key

$['ü'] 
✓

✓

e

✓

✓

✓

✓

✓

✓

e

e

✓

e

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with dot

$['two.some'] 
✓

✓

e

✓

✓

✓

✗

✓

✓

✗

✓

✓

e

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

#
Bracket notation with double quotes

$["key"] 
✓

✗

e

✓

✗

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✗

✗

✓

✓

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✗

✓

✗

✓

✓

✗

✓

✗

✓

✓

✓

#
Bracket notation with empty path

$[] 
✗

✗

e

✓

✓

✓

✗

✓

✓

✓

e

✓

e

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✗

e

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Bracket notation with empty string

$[''] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✓

e

✓

e

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✗

✓

✗

✗

✓

✗

✓

✗

✓

✓

✗

✓

✓

✓

#
Bracket notation with empty string doubled quoted

$[""] 
✓

✗

e

✓

✗

✓

✓

✓

✓

✓

e

✓

e

✓

✓

✗

✗

✓

✓

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✗

✓

✗

✓

✗

✗

✓

✗

✓

✓

✓

#
Bracket notation with negative number on short array

$[2] 
✓

✓

e

✓

e

✓

✓

✓

✓

e

e

✓

e

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✗

✗

✓

✓

e

✓

✗

✗

✗

✗

✓

e

✓

✓

✓

✓

✓

#
Bracket notation with number

$[2] 
✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with number on object

$[0] 
✓

✓

e

✓

✓

✓

✓

✓

✓

✗

✗

✓

e

✗

✓

e

✗

e

✓

✗

✓

✓

✓

✓

✗

✗

✓

✗

✗

✗

e

✓

✓

✗

✓

✓

✓

✓

✓

✗

✗

✓

✓

#
Bracket notation with number on short array

$[1] 
✓

✓

e

✓

✓

✓

✓

✓

✓

e

e

✓

e

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with number on string

$[0] 
✓

✓

e

✓

✓

✓

e

e

e

e

e

✓

e

✓

✓

e

✗

✗

e

✗

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✗

✓

e

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with number after dot notation with wildcard on nested arrays with different length

$.*[1] 
✓

✗

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

e

✓

✓

✗

✗

✓

✓

✓

✓

✓

#
Bracket notation with number 1

$[1] 
✗

✗

✓

✓

✓

✓

✗

✓

✓

e

✓

✓

✓

✓

✓

✓

✗

✓

✗

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✗

✓

✗

✓

✓

e

✓

✗

✓

✓

✓

#
Bracket notation with number 1 on empty array

$[1] 
✓

✓

e

✓

e

✓

✓

✓

✓

e

e

✓

e

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✗

e

✓

✓

✓

✓

e

✓

✗

✓

✗

✓

✓

e

✓

✓

✓

✓

✓

#
Bracket notation with number 0

$[0] 
✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with quoted array slice literal

$[':'] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with quoted closing bracket literal

$[']'] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✗

e

✗

✓

✗

✓

✗

✗

✓

✓

✓

✓

✗

✓

✓

✓

#
Bracket notation with quoted current object literal

$['@'] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with quoted dot literal

$['.'] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

e

✗

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

#
Bracket notation with quoted dot wildcard

$['.*'] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✗

✓

✓

e

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

#
Bracket notation with quoted double quote literal

$['"'] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

e

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with quoted escaped backslash

$['\\'] 
➚

➚

e

➘

➘

➚

➚

➚

➚

➘

e

➚

e

➘

➘

➘

➚

➚

➚

➚

➚

➘

➘

➘

➚

➚

➘

➚

➚

➚

➘

➘

➚

➚

➘

➘

➚

➘

➘

➚

➘

➘

➘

#
Bracket notation with quoted escaped single quote

$['\''] 
➘

➘

e

➚

➚

➘

➘

➘

e

➚

➚

➘

e

➚

➚

➘

➘

➚

➘

➘

➘

➚

➚

➚

➘

➘

➚

➘

➘

➘

➚

➘

➘

➘

➘

➚

➚

➚

➚

➘

➚

➚

➚

#
Bracket notation with quoted number on object

$['0'] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with quoted root literal

$['$'] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with quoted special characters combined

$[':@."$,*\'\\'] 
➚

➚

e

➘

➘

➘

➚

➚

e

➘

e

➚

e

➘

➘

➘

➚

➚

➚

➚

➚

➘

➘

➘

➚

➚

➘

➚

➚

➚

➘

➘

➘

e

➘

➚

➚

➘

➘

➚

➘

➘

➘

#
Bracket notation with quoted string and unescaped single quote

$['single'quote'] 
✗

✗

e

✓

✗

✓

✗

✓

e

✓

e

✓

e

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✗

✓

✗

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Bracket notation with quoted union literal

$[','] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

✗

✓

✗

✓

✗

✓

✗

✓

✓

e

✓

✓

✗

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with quoted wildcard literal
⁴

$['*'] 
✗

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✗

e

✗

✗

✓

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

#
Bracket notation with quoted wildcard literal on object without key

$['*'] 
✓

✗

✗

✓

✓

✓

✓

✓

✓

e

e

✓

e

✓

✓

✗

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✗

✗

✗

✗

✗

✓

✓

✗

✓

✗

✓

✓

✗

✓

✓

✓

#
Bracket notation with spaces

$[ 'a' ] 
✓

✗

e

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✗

✓

✗

✗

✓

✗

✗

✓

✓

✓

✓

✗

✗

✓

✓

✗

✗

✓

✗

✗

e

✗

✓

✓

✓

✓

✗

✗

✓

✓

#
Bracket notation with string including dot wildcard

$['ni.*'] 
✗

✓

e

✓

✓

✓

✗

✓

✓

✗

✓

✓

e

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

#
Bracket notation with two literals separated by dot

$['two'.'some'] 
✗

✗

e

✓

✗

✓

✗

✓

✓

✓

e

✓

e

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✗

✓

✗

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Bracket notation with two literals separated by dot without quotes

$[two.some] 
✗

✓

e

✓

✗

✓

✗

✓

✓

e

e

✓

e

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

✗

✗

✓

✓

✓

e

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Bracket notation with wildcard on array

$[*] 
✗

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Bracket notation with wildcard on empty array

$[*] 
✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Bracket notation with wildcard on empty object

$[*] 
✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

e

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Bracket notation with wildcard on null value array

$[*] 
✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Bracket notation with wildcard on object
⁴

$[*] 
✗

✗

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✗

✓

✗

✗

✓

✓

✓

✗

✓

#
Bracket notation with wildcard after array slice

$[0:2][*] 
✓

✓

✗

✓

✓

✗

✗

✓

✓

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Bracket notation with wildcard after dot notation after bracket notation with wildcard

$[*].bar[*] 
✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Bracket notation with wildcard after recursive descent
⁴

$..[*] 
✗

✗

✓

✓

✗

✗

✗

✓

✗

✓

✗

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✗

✓

✗

e

✗

✓

✗

✗

✗

✓

✗

✗

✓

#
Bracket notation without quotes

$[key] 
✗

✓

e

✓

✓

✓

✗

✓

✓

e

✗

✓

e

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✗

✗

✗

✗

✗

✗

✓

✓

e

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Dot bracket notation

$.['key'] 
➘

➚

e

➚

➘

➚

➘

➘

➚

➚

➘

➚

e

➘

➚

➚

➘

➚

➚

➘

➚

➘

➘

➘

➘

➚

➘

➘

➘

➘

➘

➚

➚

➘

➚

➘

➚

➘

➘

➘

➘

➚

➚

#
Dot bracket notation with double quotes

$.["key"] 
➘

➚

e

➚

➘

➚

➘

➘

➚

➚

➘

➚

e

➘

➚

➚

➘

➚

➚

➘

➚

➘

➘

➘

➘

➚

➘

➘

➘

➘

➘

➚

➚

➘

➚

➘

➚

➚

➘

➘

➘

➚

➚

#
Dot bracket notation without quotes

$.[key] 
✗

✓

e

✓

✗

✓

✗

✓

✓

✓

✗

✓

e

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✗

✗

✗

✗

✗

✓

✓

e

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Dot notation

$.key 
✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation on array

$.key 
✓

✓

✓

✓

✓

✓

✓

✓

✓

e

e

✓

✗

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation on array value

$.key 
✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation on array with containing object matching key

$.id 
✓

✓

✓

✓

✓

✓

✓

✓

✓

e

e

✓

✗

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation on empty object value

$.key 
✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation on null value

$.key 
✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation on object without key

$.missing 
✓

✓

✓

✓

✓

✓

✓

✓

✓

e

e

✓

e

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation after array slice

$[0:2].key 
✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation after bracket notation after recursive descent
⁴

$..[1].key 
✓

✗

e

✓

✓

✗

✗

✓

✗

✓

✗

✓

e

✓

✓

✓

✓

e

✓

✓

✓

✗

✓

✗

✓

✗

✓

✓

✗

✓

e

✓

✓

e

✗

✓

✗

✗

✗

✓

✓

✗

✓

#
Dot notation after bracket notation with wildcard

$[*].a 
✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Dot notation after bracket notation with wildcard on one matching

$[*].a 
✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Dot notation after bracket notation with wildcard on some matching

$[*].a 
✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Dot notation after filter expression

$[?(@.id==42)].name 
✓

✗

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

e

✓

✓

✓

e

✓

✗

✗

✗

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Dot notation after recursive descent
⁴

$..key 
✗

✗

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✗

✓

✓

✓

✓

✗

✓

#
Dot notation after recursive descent after dot notation
⁴

$.store..price 
✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Dot notation after union

$[0,2].key 
✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation after union with keys

$['one','three'].key 
✓

✗

e

✓

✓

✓

✗

✓

✓

✗

✓

✓

e

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✗

✗

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

#
Dot notation with dash

$.keydash 
✓

✓

✓

✗

✓

✗

✓

✓

✗

✗

e

✗

✓

✓

✓

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✗

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

#
Dot notation with double quotes

$."key" 
➘

➘

➘

➘

➘

e

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

#
Dot notation with double quotes after recursive descent
⁴

$.."key" 
➘

➘

➘

➘

➘

e

➘

➚

e

➚

➘

➚

e

➘

➘

➚

➘

➚

➚

➘

➘

➘

➘

➘

➘

➚

➘

➘

➘

➘

➘

➚

➚

➚

➚

➚

➘

➘

➚

➘

➘

➚

➚

#
Dot notation with empty path

$. 
✗

✓

✗

✓

✗

✓

✗

✓

✗

✓

e

✓

✗

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✗

✗

✗

✓

✓

✓

✗

✓

✓

✓

✓

✗

✗

✓

✓

✓

#
Dot notation with key named in

$.in 
✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation with key named length

$.length 
✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

#
Dot notation with key named length on array

$.length 
✓

✓

✓

✗

✓

✓

✓

✓

✓

e

e

✓

✗

✗

✓

e

✗

✗

✗

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

#
Dot notation with key named null

$.null 
✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation with key named true

$.true 
✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation with key root literal

$.$ 
➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

#
Dot notation with non ASCII key

$.屬性 
✗

✓

✗

✓

✗

✗

✓

✓

e

✓

✓

✓

✓

✓

✓

✗

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✗

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation with number

$.2 
➚

➚

➚

➘

➚

➘

➚

➚

➘

➘

➘

➚

➘

➘

➚

e

➘

➘

➘

➘

➘

➚

➚

➚

➘

➘

➚

➘

➘

➘

➘

➘

➘

➚

➚

➚

➚

➚

➚

➘

➚

➚

➚

#
Dot notation with number on object

$.2 
✓

✓

✓

✓

✓

✗

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation with number 1

$.1 
➚

➚

➚

➘

➚

➘

➚

➚

➘

➘

➘

➘

➘

➘

➚

e

➚

➘

➚

➚

➘

➚

➚

➚

➚

➘

➘

➘

➘

➚

➘

➘

➘

➚

➚

➚

➚

➚

➘

➚

➘

➚

➚

#
Dot notation with single quotes

$.'key' 
➚

➘

➚

➚

➘

e

➘

➘

e

➘

➚

➘

➘

➚

➘

➘

➚

➘

➘

➚

➘

➘

➘

➘

➚

➘

➚

➚

➚

➚

➚

➘

➘

➚

➘

➘

➘

➘

➘

➚

➚

➘

➘

#
Dot notation with single quotes after recursive descent
⁴

$..'key' 
➘

➘

➚

➚

➘

e

➘

➘

e

➘

➚

➘

e

➚

➘

➘

➚

➘

➘

➚

➘

➘

➘

➘

➚

➘

➚

➚

➚

➚

➚

➘

➘

➚

➘

➘

➘

➘

➘

➚

➚

➘

➘

#
Dot notation with single quotes and dot

$.'some.key' 
➘

➘

➘

➘

➘

e

➘

➚

e

➚

➘

➚

e

e

➘

➚

➘

➚

➚

➘

➚

➘

➘

➘

➘

➚

➘

➚

➘

➘

➘

➚

➚

➘

➚

➚

➘

➘

➚

➘

➘

➚

➚

#
Dot notation with space padded key

$. a 
➘

➘

➘

➚

➘

➘

➘

➘

➘

➘

➘

➚

➘

➘

➚

➚

➘

➚

➚

➘

➘

➚

➘

➚

➘

➚

➚

➚

➘

➘

➘

➘

➚

➘

➚

➚

➘

➚

➚

➘

➚

➚

➚

#
Dot notation with wildcard on array

$.* 
✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✗

✗

✓

✓

✓

✓

✓

#
Dot notation with wildcard on empty array

$.* 
✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation with wildcard on empty object

$.* 
✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation with wildcard on object
⁴

$.* 
✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation with wildcard after dot notation after dot notation with wildcard

$.*.bar.* 
✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✗

✗

✓

✓

✓

✓

✓

#
Dot notation with wildcard after dot notation with wildcard on nested arrays

$.*.* 
✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✗

✗

✓

✓

✓

✓

✓

#
Dot notation with wildcard after recursive descent
⁴

$..* 
✗

✗

✓

✓

✓

✗

✗

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✗

✓

✗

✗

✗

✓

✗

✗

✓

✓

✓

✗

✓

#
Dot notation with wildcard after recursive descent on null value array
⁴

$..* 
✓

✗

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✗

✓

✗

✓

✗

✗

✗

✓

✗

✗

✓

✓

✓

✗

✓

#
Dot notation with wildcard after recursive descent on scalar
⁴

$..* 
✓

✓

✓

✓

✓

✗

e

✓

✓

✓

✓

✓

e

✓

✓

e

✓

✓

e

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✗

✗

✓

✗

✗

✓

✓

✓

✗

✓

#
Dot notation without dot

$a 
✗

✓

✗

✓

✗

✓

✗

✓

✓

✓

e

✓

✗

✓

✓

✓

✗

✓

✓

✗

✓

✓

✗

✓

✗

✓

✓

✗

✗

✗

✓

✓

✗

✗

✓

✓

✓

✗

✓

✗

✓

✓

✓

#
Dot notation without root

.key 
➘

➘

➘

➚

➘

➘

➘

➚

➚

➚

e

➘

e

➘

➘

➘

➘

➚

➚

➘

➚

➘

➘

➘

➘

➚

➚

➘

➘

➘

➚

➚

➘

➘

➚

➚

➚

➘

➘

➘

➚

➚

➚

#
Dot notation without root and dot

key 
➚

➘

➘

➘

➚

➚

➘

➘

➘

➚

e

➚

e

➘

➚

➘

➚

➘

➚

➚

➘

➚

➚

➚

➚

➘

➘

➚

➚

➚

➚

➘

➚

➚

➘

➘

➘

➚

➘

➚

➘

➘

➘

#
Empty


➘

e

➘

➚

➚

➚

e

➚

➚

➚

e

➘

e

➚

➘

➚

e

e

e

➘

➚

e

➚

➚

➘

➚

➚

➘

e

➘

➚

➚

➚

➘

➚

➚

➚

➘

➚

➘

e

➚

➚

#
Filter expression on object

$[?(@.key)] 
➘

➘

➚

➚

➘

➘

➘

➘

➚

➚

➘

➘

e

➚

➘

➘

➘

➘

➚

➚

➘

➘

➘

➘

e

➚

➘

➚

e

➚

➘

➘

➘

➘

➘

➘

➘

➘

➚

➚

➚

➘

➚

#
Filter expression after dot notation with wildcard after recursive descent
⁴

$..*[?(@.id>2)] 
➘

➘

e

➚

➘

➘

➘

➘

➘

➘

➘

➚

e

➚

➘

e

➘

➘

➚

➚

➘

➘

➘

➘

e

➘

➘

➚

e

➚

➘

➘

➘

➘

➘

➘

➘

➘

➚

➚

➚

➘

➚

#
Filter expression after recursive descent
⁴

$..[?(@.id==2)] 
➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

#
Filter expression with addition

$[?(@.key+50==100)] 
➘

➚

➘

➘

➚

➚

➘

➘

e

➚

e

➘

➘

➘

➘

➚

➘

➘

➘

➘

➘

➘

➚

➘

e

➚

➚

➘

e

➘

➚

➚

➚

e

➚

➘

➘

➘

➘

➘

➘

➚

➚

#
Filter expression with boolean and operator

$[?(@.key>42 && @.key<44)] 
✗

✗

✗

✓

✗

✗

✗

✓

e

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

e

✓

✓

✗

e

✓

✗

✗

✗

✓

✗

✓

✓

✓

✗

✓

✓

✗

✓

#
Filter expression with boolean and operator and value false

$[?(@.key>0 && false)] 
➘

➚

e

➘

➚

➚

➘

➘

➚

➚

e

➘

➘

➘

➘

➚

➘

➘

➘

➘

➚

➚

➚

➚

e

➘

➘

➘

e

➘

➚

➚

➚

e

➚

➚

➚

e

➚

➘

➘

➚

➚

#
Filter expression with boolean and operator and value true

$[?(@.key>0 && true)] 
➘

➚

e

➘

➚

➚

➘

➘

➚

➚

e

➘

➘

➘

➘

➚

➘

➘

➘

➘

➚

➚

➚

➚

e

➘

➘

➘

e

➘

➚

➚

➚

e

➚

➚

➚

e

➚

➘

➘

➚

➚

#
Filter expression with boolean or operator

$[?(@.key>43  @.key<43)] 
➘

➘

➘

➚

➘

➘

➘

➚

e

➘

➚

➚

➘

➚

➚

➘

➚

➚

➚

➚

➚

➚

➘

➚

e

➚

➚

➘

e

➚

➘

➘

➘

➚

➘

➘

➚

➚

➘

➚

➚

➘

➚

#
Filter expression with boolean or operator and value false

$[?(@.key>0  false)] 
➘

➚

e

➘

➚

➚

➘

➘

e

➚

e

➘

➘

➘

➘

➚

➘

➘

➘

➘

➚

➚

➚

➚

e

➘

➘

➘

e

➘

➚

➚

➚

e

➚

➚

➚

e

➚

➘

➘

➚

➚

#
Filter expression with boolean or operator and value true

$[?(@.key>0  true)] 
➘

➚

e

➘

➚

➚

➘

➘

e

➚

e

➘

➘

➘

➘

➚

➘

➘

➘

➘

➚

➚

➚

➚

e

➘

➘

➘

e

➘

➚

➚

➚

e

➚

➚

➚

e

➚

➘

➘

➚

➚

#
Filter expression with bracket notation

$[?(@['key']==42)] 
✗

✗

e

✓

✗

✓

✗

✓

✓

✗

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

e

✓

✓

✓

e

✓

✗

✗

✗

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Filter expression with bracket notation and current object literal

$[?(@['@key']==42)] 
✗

✗

e

✓

✗

✓

✗

✓

✓

✗

✓

✓

e

✓

✓

✗

✗

✓

✓

✓

✓

✓

✗

✓

e

✓

✓

✓

e

✗

✗

✗

✗

✓

✗

✓

✓

✓

✓

✗

✓

✗

✓

#
Filter expression with bracket notation with 1

$[?(@[1]==2)] 
➘

➘

➘

➚

➘

➚

➘

➚

➚

➘

e

➚

e

➚

➚

e

➘

➘

➘

➘

➘

➚

➘

➚

e

➚

➚

➘

e

➚

➘

➘

➘

➘

➘

➘

➚

e

➚

➘

➘

➘

➚

#
Filter expression with bracket notation with number

$[?(@[1]=='b')] 
✗

✗

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

e

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

e

✓

✓

✓

e

✓

✗

✗

✗

✓

✗

✗

✓

✓

✓

✗

✓

✗

✓

#
Filter expression with bracket notation with number on object

$[?(@[1]=='b')] 
➚

➘

➘

➘

➘

➘

➚

➚

➘

➘

➚

➘

e

➘

➚

➘

➚

➚

➘

➘

➚

➚

➘

➚

e

➘

➚

➘

e

➘

➘

➘

➘

e

➚

➘

➚

➚

➘

➚

➘

➘

➘

#
Filter expression with current object

$[?(@)] 
➘

➚

➘

➘

➚

➚

➘

➚

➘

➘

➘

➚

➘

➘

➘

➚

➘

➘

➘

e

➚

➘

➚

➘

e

➘

➘

e

e

➘

➚

➘

➚

➘

➚

➘

➘

➘

➘

e

➚

➚

➘

#
Filter expression with different grouped operators

$[?(@.a && (@.b  @.c))] 
➘

➘

➘

➘

➘

➘

➘

➘

e

➘

e

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➘

e

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

#
Filter expression with different ungrouped operators

$[?(@.a && @.b  @.c)] 
➘

➘

➘

➚

➘

➘

➘

➚

e

➘

➘

➚

e

➘

➚

➘

➚

➚

➚

➚

➚

➚

➘

➚

e

➚

➚

e

e

➘

➘

➘

➘

➘

➘

➘

➚

➘

➘

➚

➚

➘

➘

#
Filter expression with division

$[?(@.key/10==5)] 
➘

➚

➘

➘

➚

➚

➘

➘

e

➚

e

➘

➘

➘

➘

➚

➘

➘

➘

➘

➘

➚

➚

➚

e

➚

➚

➘

e

➘

➚

➚

➚

➘

➚

➘

➘

➘

➘

➘

➘

➚

➚

#
Filter expression with dot notation with dash

$[?(@.keydash == 'value')] 
➘

➚

➘

➚

➚

➚

➘

➘

➚

➚

e

➚

➘

e

➘

➚

e

➚

➘

e

➘

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➚

➚

➘

➘

➘

➘

➘

➚

e

➚

➚

➘

#
Filter expression with dot notation with number

$[?(@.2 == 'second')] 
➘

➘

➘

➚

➘

➘

➘

➚

➘

➘

➚

➚

➘

➚

➚

➘

e

➘

e

e

➘

➚

➘

➚

e

➚

➚

➚

e

➘

➘

➘

➘

➚

➚

➚

➚

➚

➘

e

➚

➘

➚

#
Filter expression with empty expression

$[?()] 
✗

✓

✗

✓

✓

✓

✗

✓

✓

✓

e

✓

✗

e

✓

✓

✗

✗

✓

✗

✓

✓

✓

✓

e

✗

✓

✓

e

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Filter expression with equals

$[?(@.key==42)] 
➘

➘

➘

➚

➘

➚

➘

➚

➚

➚

e

➚

➘

➚

➚

e

➘

➚

➘

➘

e

➘

➘

➘

e

➚

➚

➘

e

➚

➘

➘

➘

➘

➘

➚

➚

➚

➚

➘

➚

➘

➚

#
Filter expression with equals on array of numbers

$[?(@==42)] 
➘

➘

➘

➚

➘

➘

➘

➚

➘

➚

e

➚

➘

➚

➚

➘

➚

➚

➚

e

➘

➚

➘

➚

e

➚

➚

e

e

➚

➘

➘

➘

➚

➘

➘

➚

➚

➚

➚

➘

➘

➚

#
Filter expression with equals on array without match

$[?(@.key==43)] 
✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

e

✓

✓

✓

e

✓

✗

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

#
Filter expression with equals on object

$[?(@.key==42)] 
➚

➘

➘

➘

➘

➘

➚

➚

➘

➘

➚

➘

e

➘

➚

e

➚

➚

➘

➘

➚

➚

➘

➚

e

➘

➚

➘

e

➘

➘

➘

➘

➚

➚

➚

➚

➚

➘

➘

➘

➘

➘

#
Filter expression with equals on object with key matching query

$[?(@.id==2)] 
➚

➘

➘

➚

➘

➚

➚

➘

➚

➚

➚

➚

e

➚

➚

e

➘

➘

➚

➚

➚

➘

➘

➘

e

➚

➘

➚

e

➚

➘

➘

➘

➘

➚

➘

➘

➚

➚

➚

➚

➘

➚

#
Filter expression with equals array

$[?(@.d==["v1","v2"])] 
➘

➚

e

➘

➚

➚

➘

➚

➚

➚

e

➚

e

e

➚

➚

➘

➘

➘

➘

➚

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➚

➚

➘

➚

➚

➚

➚

➘

e

➚

➚

➚

#
Filter expression with equals array for array slice with range 1

$[?(@[0:1]==[1])] 
➘

➚

e

➘

➚

➚

➘

➚

➚

➚

e

➚

e

e

➚

➚

e

➚

e

e

➚

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➚

➚

➘

➚

➚

➚

➚

➘

e

➚

➚

➚

#
Filter expression with equals array for dot notation with star

$[?(@.*==[1,2])] 
➘

➚

e

➘

➚

➚

➘

➚

➚

➚

e

➚

e

e

➚

➚

e

➚

e

e

➚

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➚

➚

e

➚

➚

➚

➚

➘

e

➚

➚

➚

#
Filter expression with equals array with single quotes

$[?(@.d==['v1','v2'])] 
➘

➚

e

➚

➚

➚

➘

➚

➚

➚

e

➚

e

e

➚

➚

➘

➘

➘

➘

➚

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➚

➚

➘

➚

➚

➚

➚

➘

e

➚

➚

➚

#
Filter expression with equals boolean expression value

$[?((@.key<44)==false)] 
➘

➚

e

➘

➚

➚

➘

➚

➚

➚

e

➘

➘

➘

➘

➚

➘

➘

➘

➘

➚

➚

➚

➚

e

➘

➘

e

e

➘

➚

➚

➚

e

➚

➚

➚

➚

➚

➘

➘

➚

➚

#
Filter expression with equals false

$[?(@.key==false)] 
➘

➘

➘

➚

➘

➘

➘

➚

➘

➚

e

➚

➘

➚

➚

➘

➘

➚

➘

➘

➚

➚

➘

➘

e

➘

➚

➘

e

➘

➘

➘

➘

➚

➘

➚

➚

➚

➚

➘

➘

➘

➚

#
Filter expression with equals null

$[?(@.key==null)] 
➘

➚

➘

➘

➚

➚

➘

➘

➚

➚

e

➘

➘

➘

➘

➚

➘

➘

➘

➘

➚

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➚

➚

➘

➚

➚

➘

➘

➚

➘

➘

➚

➘

#
Filter expression with equals number for array slice with range 1

$[?(@[0:1]==1)] 
➚

➘

e

➚

➘

e

➚

➘

e

➚

e

➘

e

➘

➘

➘

e

➘

e

e

➚

➚

➘

➚

e

➘

➘

➚

e

➚

➘

➘

➘

➘

➚

e

➘

➘

➘

e

➘

➘

➘

#
Filter expression with equals number for bracket notation with star

$[?(@[*]==2)] 
➘

➚

➘

➘

➚

➚

➘

➚

➘

➘

e

➘

e

➘

➘

➘

e

➚

e

e

➘

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➚

➚

➘

➚

e

➘

➘

➘

e

➚

➚

➚

#
Filter expression with equals number for dot notation with star

$[?(@.*==2)] 
➚

➘

➘

➚

➘

e

➚

➘

➘

➚

e

➘

➘

➘

➘

➘

e

➘

e

e

➘

➚

➘

➚

e

➘

➘

➚

e

➚

➘

➘

➘

➘

➚

➘

➚

➚

➘

e

➘

➘

➘

#
Filter expression with equals number with fraction

$[?(@.key==0.123e2)] 
➘

➚

➘

➘

➚

➚

➘

➘

➚

➚

e

➚

➘

➘

➘

➚

➘

➘

➘

➘

e

➚

➚

➚

e

➘

➚

➘

e

➘

➚

➚

➚

➘

➚

➘

➚

➘

➚

➘

➘

➚

➘

#
Filter expression with equals number with leading zeros

$[?(@.key==010)] 
➘

➘

➘

➘

➘

➚

➘

➚

➚

➚

e

➚

➘

e

➚

e

➘

➘

➘

➘

➘

➘

➘

➘

e

➚

➘

➘

e

➘

➘

➘

➘

➘

➘

➚

➚

➚

➚

➘

➚

➘

➘

#
Filter expression with equals object

$[?(@.d=={"k":"v"})] 
➘

➚

➘

➘

➚

➚

➘

➚

e

➚

e

➚

➘

e

➚

➚

➘

➘

➘

➘

➚

➘

➚

➘

e

➘

➚

➘

e

➘

➚

➚

➚

➘

➚

➚

➚

➚

➚

e

➚

➚

➚

#
Filter expression with equals string

$[?(@.key=="value")] 
➘

➘

➘

➚

➘

➚

➘

➚

➚

➚

e

➚

➘

➚

➚

e

➘

➚

➘

➘

➘

➚

➘

➚

e

➚

➚

➘

e

➚

➘

➘

➘

➚

➘

➚

➚

➘

➚

➚

➚

➘

➚

#
Filter expression with equals string with current object literal

$[?(@.key=="hi@example.com")] 
✗

✗

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

✗

✓

✓

✓

✗

✓

✗

✓

e

✓

✓

✓

e

✗

✗

✗

✗

✓

✗

✓

✓

✗

✓

✗

✓

✗

✓

#
Filter expression with equals string with dot literal

$[?(@.key=="some.value")] 
✗

✗

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

e

✓

✓

✓

e

✓

✗

✗

✗

✓

✗

✓

✓

✗

✓

✓

✓

✗

✓

#
Filter expression with equals string with single quotes

$[?(@.key=='value')] 
✗

✗

✗

✓

✗

✓

✗

✓

✓

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

e

✓

✓

✓

e

✓

✗

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

#
Filter expression with equals true

$[?(@.key==true)] 
➘

➘

➘

➚

➘

➘

➘

➚

➘

➚

e

➚

➘

➚

➚

➘

➘

➚

➘

➘

➚

➚

➘

➘

e

➚

➚

➘

e

➘

➘

➘

➘

➚

➘

➚

➚

➚

➚

➘

➘

➘

➚

#
Filter expression with equals with root reference

$.items[?(@.key==$.value)] 
➘

➘

➚

➚

➘

➘

➘

➘

➚

➚

➚

➘

➘

➚

➚

➘

➚

➚

➘

e

➘

➚

➘

➚

e

➚

➘

➘

e

➘

➘

➘

➘

➘

➘

➚

➚

➚

➘

e

➚

➘

➚

#
Filter expression with greater than

$[?(@.key>42)] 
➘

➘

e

➚

➘

➘

➘

➘

➘

➘

e

➚

➘

➚

➚

e

➘

➘

➘

➘

e

➚

➘

➘

e

➘

➚

➘

e

➚

➘

➘

➘

e

➚

➚

➚

e

➚

➘

➚

➘

➚

#
Filter expression with greater than or equal

$[?(@.key>=42)] 
➘

➘

e

➚

➘

➘

➘

➘

e

➘

e

➚

➘

➚

➚

➘

➘

➘

➘

➘

e

➚

➘

➘

e

➘

➘

➘

e

➚

➘

➘

➘

e

➘

➚

➚

e

➚

➘

➚

➘

➚

#
Filter expression with in array of values

$[?(@.d in [2, 3])] 
✗

✓

e

✓

✓

✓

✗

✗

✓

✓

✗

✓

e

e

✓

✓

✗

✗

✗

✗

✓

✗

✓

✗

e

✓

✓

✗

e

✗

✓

✓

✓

e

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Filter expression with in current object

$[?(2 in @.d)] 
✗

✓

✗

✓

✓

✓

✗

✓

✓

✓

e

✓

✗

e

✓

✓

✗

✗

✗

✗

✓

✗

✓

✗

e

✗

✓

e

e

✗

✓

✓

✓

✗

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Filter expression with less than

$[?(@.key<42)] 
➘

➘

e

➚

➘

➚

➘

➚

➚

➘

e

➚

➘

➚

➚

e

➘

➘

➘

➘

e

➚

➘

➘

e

➘

➚

➘

e

➚

➘

➘

➘

e

➚

➚

➚

e

➚

➘

➚

➘

➚

#
Filter expression with less than or equal

$[?(@.key<=42)] 
➘

➘

e

➚

➘

➚

➘

➚

e

➘

e

➚

➘

➚

➚

➘

➘

➘

➘

➘

e

➚

➘

➘

e

➘

➘

➘

e

➚

➘

➘

➘

e

➘

➚

➚

e

➚

➘

➚

➘

➚

#
Filter expression with multiplication

$[?(@.key*2==100)] 
➘

➚

➘

➘

➚

➚

➘

➚

e

➚

e

➚

➘

➘

➘

➚

➘

➘

➘

➘

➚

➘

➚

➘

e

➚

➚

➘

e

➘

➚

➚

➚

➘

➚

➚

➚

➘

➘

➘

➘

➚

➚

#
Filter expression with negation and equals

$[?(!(@.key==42))] 
➘

➚

➘

➘

➚

➚

➘

➚

e

➚

e

➘

➘

e

➘

➚

➘

➘

➘

➘

➘

➘

➚

➘

e

➘

➘

e

e

➘

➚

➚

➚

e

➚

➚

➚

➚

➚

➘

➘

➚

➘

#
Filter expression with negation and less than

$[?(!(@.key<42))] 
➘

➚

e

➘

➚

➚

➘

➚

e

➚

e

➘

➘

e

➘

➚

➘

➘

➘

➘

➘

➘

➚

➘

e

➘

➘

e

e

➘

➚

➚

➚

e

➚

➚

➚

➚

➚

➘

➘

➚

➘

#
Filter expression with not equals

$[?(@.key!=42)] 
➘

➘

➘

➘

➘

➚

➘

➘

➘

➚

e

➘

➘

➚

➚

e

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➚

➘

e

➚

➘

➘

➘

➘

➘

➘

➚

➚

➘

➘

➚

➘

➘

#
Filter expression with regular expression

$[?(@.name=~/hello.*/)] 
➘

➚

➘

➘

➚

➚

➘

➚

e

➚

➘

➚

➘

e

➘

➚

➘

➘

➘

➘

➘

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➚

➚

➘

➚

➚

➚

➘

➚

e

➚

➚

➚

#
Filter expression with regular expression from member

$[?(@.name=~/@.pattern/)] 
➚

➘

➘

➚

➘

➘

➚

➘

e

➘

➚

➘

➚

e

➚

➘

➘

➚

➚

➘

➚

➚

➘

➚

e

➚

➚

➚

e

➚

➘

➘

➘

➚

➘

➘

➘

➚

➘

e

➘

➘

➘

#
Filter expression with set wise comparison to scalar

$[?(@[*]>=4)] 
➘

➚

➘

➘

➚

➚

➘

➚

e

➚

e

➘

e

➘

➘

➚

e

➚

e

e

➚

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➘

➚

➘

➚

e

➘

➘

➘

e

➚

➚

➚

#
Filter expression with set wise comparison to set

$.x[?(@[*]>=$.y[*])] 
➘

➘

➘

➘

➘

➘

➘

➘

e

➘

e

➘

e

e

➘

➘

e

➘

e

e

➘

➘

➘

➘

e

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

e

➘

➘

➘

e

➘

➘

➘

#
Filter expression with single equal

$[?(@.key=42)] 
✗

✓

✗

✓

✓

✓

✗

✓

e

✓

e

✓

✗

e

✓

✓

✗

✓

✗

✗

✓

✓

✓

✓

e

✓

✓

✗

e

✗

✓

✗

✓

e

✓

✓

✓

✓

✓

e

✓

✓

✓

#
Filter expression with subfilter

$[?(@.a[?(@.price>10)])] 
➘

➚

e

➘

➚

➚

➘

➚

➘

➚

➘

➚

➘

➘

➘

➚

e

➚

➚

e

e

➘

➚

➘

e

➚

➘

➘

e

➘

➚

➘

➚

➘

➚

➘

➘

➘

➘

e

➚

➚

➚

#
Filter expression with subpaths

$[?(@.address.city=='Berlin')] 
✗

✗

✗

✓

✗

✓

✗

✓

✓

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

e

✓

✓

✗

e

✓

✗

✗

✗

✓

✗

✓

✓

✓

✓

✓

✓

✗

✓

#
Filter expression with subtraction

$[?(@.key50==100)] 
➘

➘

➘

➘

➘

➘

➘

➚

➘

➘

e

➘

➘

➘

➚

➚

➘

➘

➘

➘

➚

➚

➘

➚

e

➚

➚

➚

e

➘

➘

➘

➘

e

➘

➚

➚

➚

➘

➘

➘

➘

➚

#
Filter expression with tautological comparison

$[?(1==1)] 
➘

➘

➘

➚

➘

➘

➘

➚

➚

➚

➚

➚

➘

➚

➚

➘

➘

➚

➚

➚

➘

➚

➘

➚

e

➘

➚

e

e

➚

➘

➘

➘

➘

➘

➘

➘

➘

➚

➚

➚

➘

➚

#
Filter expression with triple equal

$[?(@.key===42)] 
➘

➚

➘

➚

➚

➚

➘

➘

e

➚

e

➚

➘

e

➚

➚

➘

➘

➘

➘

e

➘

➚

➘

e

➚

➚

➘

e

➘

➚

➚

➚

e

➚

➚

➚

➘

➚

➘

➚

➚

➚

#
Filter expression with value

$[?(@.key)] 
➘

➘

➘

➘

➘

➘

➘

➚

➚

➘

➘

➘

➘

➘

➚

➘

➘

➘

➘

➘

➚

➚

➘

➚

e

➘

➚

➘

e

➘

➘

➘

➘

➘

➘

➚

➚

➚

➚

e

➘

➘

➚

#
Filter expression with value after dot notation with wildcard on array of objects

$.*[?(@.key)] 
➚

➘

➚

➚

➘

➘

➚

➘

➚

➚

➚

➘

➚

➚

➚

➘

➘

➘

➚

➚

➚

➘

➘

➘

e

➚

➘

➚

e

➚

➘

➘

➘

➘

➘

➘

➚

➚

➚

➚

➚

➘

➚

#
Filter expression with value after recursive descent
⁴

$..[?(@.id)] 
➘

➚

➘

➘

➚

➚

➘

➘

➚

➘

➘

➚

e

➘

➘

➚

➘

➘

➘

➘

➘

➘

➚

➘

e

➚

➘

➘

e

➘

➚

➘

➚

➘

➚

➘

➘

➘

➘

e

➚

➚

➘

#
Filter expression with value false

$[?(false)] 
➚

➘

➚

➚

➘

➘

➚

➚

➘

➚

➚

➘

➘

➚

➚

➘

➚

➚

➚

➚

➘

➘

➘

➘

e

➚

➚

e

e

➚

➘

➚

➘

➘

➘

➘

➘

➘

➘

➚

➚

➘

➘

#
Filter expression with value from recursive descent

$[?(@..child)] 
➘

➚

➘

➘

➚

➚

➘

➚

➘

➘

➘

➚

➘

➘

➚

➚

e

➚

e

e

➘

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➘

➚

➘

➚

➘

➘

➘

➘

e

➚

➚

➚

#
Filter expression with value null

$[?(null)] 
➘

➚

➘

➘

➚

➚

➘

➚

➚

➘

e

➚

➘

➘

➘

➚

➘

➘

➘

➘

➚

➚

➚

➚

e

➘

e

e

e

➘

➚

➘

➚

➘

➚

➚

➚

➘

➚

➘

➘

➚

➚

#
Filter expression with value true

$[?(true)] 
➘

➚

➘

➘

➚

➚

➘

➘

➚

➘

➘

➚

➘

➘

➘

➚

➘

➘

➘

➘

➚

➚

➚

➚

e

➘

➘

e

e

➘

➚

➘

➚

➘

➚

➚

➚

➘

➘

➘

➘

➚

➚

#
Filter expression without parens

$[?@.key==42] 
✗

✓

e

✗

✓

✓

✗

✓

✓

✗

e

✓

e

✗

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

✗

✗

✓

✓

✓

e

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Filter expression without value

$[?(!@.key)] 
➘

➚

➘

➘

➚

➚

➘

➚

e

➚

e

➘

➘

e

➘

➚

➘

➘

➘

➘

➚

➘

➚

➘

e

➘

➘

e

e

➘

➚

➚

➚

e

➚

➚

➚

➚

➚

➘

➘

➚

➘

#
Parens notation

$(key,more) 
✗

✓

✗

✓

✗

✓

✗

✓

✓

✓

e

✓

e

✓

✓

✓

e

✓

✓

✗

✓

✓

✗

✓

✗

✓

✓

✗

✗

✗

✓

✓

✓

✗

✓

✗

✓

✓

✓

e

✓

✓

✓

#
Recursive descent
⁴

$.. 
➘

➚

➘

➚

➘

➚

➘

➚

➘

➚

e

➘

e

➘

➚

➚

➘

➚

➚

➘

e

➚

➘

➚

➘

➚

➚

➘

➘

➘

➚

➚

➘

➘

➚

➚

➚

➚

➘

➘

➚

➚

➚

#
Recursive descent after dot notation
⁴

$.key.. 
➘

➚

➘

➚

➘

➚

➘

➚

➚

➚

e

➘

e

➘

➚

➘

➘

➚

➚

➘

e

➚

➘

➚

➘

➚

➚

➘

➘

➘

➚

➚

➘

➘

➚

➚

➚

➚

➘

➘

➚

➚

➚

#
Root

$ 
✗

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Root on scalar

$ 
✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

e

✓

✗

✓

✓

✓

✗

✓

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Root on scalar false

$ 
✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

e

✓

e

e

✗

✓

✓

✓

✗

✓

✓

✓

e

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Root on scalar true

$ 
✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

e

✓

✗

✓

✓

✓

✗

✓

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

