#
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

➘

➘

➚

➘

➘

➘

#
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

➘

➘

➚

➘

➘

➘

#
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

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation after recursive descent
⁴

$..[0]

✗

✗

e

✓

✓

✗

✗

✓

✗

✓

✓

✓

e

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✗

✓

e

e

✓

✗

e

✗

✓

✗

✓

✗

✓

✗

✓

✓

✗

✓

#
Bracket notation with NFC path on NFD key

$['ü']

✓

✓

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

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✗

✗

✓

✗

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

#
Bracket notation with empty string doubled quoted

$[""]

✓

✗

e

✓

✓

✓

✓

✓

✓

✓

✗

✓

e

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

✗

✓

✗

✓

✗

✓

✗

✓

✓

✗

✓

✓

✓

#
Bracket notation with negative number on short array

$[2]

✓

✓

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

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Bracket notation with number on string

$[0]

✓

✓

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

✓

✓

✓

✓

✓

✓

#
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

➘

➘

➘

➚

➘

➚

➚

➚

➘

➘

➘

➚

➚

➘

➚

➚

➚

➘

➘

➘

➚

➚

➘

➘

➚

➘

➘

➘

➘

➚

➘

➘

➘

#
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

➘

➚

➚

➘

➘

➘

➘

➚

➘

➘

➘

#
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

✓

✓

✗

✗

✓

✓

✗

✓

✓

✓

✓

✗

✓

✓

✗

✗

✗

✗

✗

✗

✓

✓

✗

✓

✗

✓

✓

✓

✓

✗

✓

✓

✓

#
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

✓

✓

✓

✓

✓

✓

✓

✗

✓

✓

✓

#
Current with dot notation

@.a

➘

➚

➘

➘

➚

➚

➘

➚

➚

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

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation on array value

$.key

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
Dot notation on array with containing object matching key

$.id

✓

✓

✓

✓

✓

✓

✓

✓

✓

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

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

#
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

✓

✓

✓

✗

✓

✗

✓

✓

✗

✗

✗

✗

✓

✓

✓

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✗

✓

✓

✓

✓

✓

✓

✗

✗

✓

✗

✓

✓

#
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

✗

✗

✗

✗

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

✗

✓

✓

#
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

n/a

✗

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

➚

➘

➘

➘

➘

➘

➘

➘

➘

➚

➚

#
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

➚

➚

➚

➚

➘

➘

#
Filter expression with boolean and operator and value true

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

➘

➚

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

➘

➘

➘

➘

➚

➚

#
Filter expression with boolean or operator and value true

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

➘

➚

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

➚

➚

➘

➘

➘

➚

#
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

➘

➚

➚

➚

➚

➘

➚

➘

➘

➚

➘

➘

➘

➘

➘

➚

➚

#
Filter expression with dot notation with dash

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

➘

➚

➘

➚

➘

➚

➘

➘

➚

➚

➘

➚

➘

e

➘

➚

e

➚

➘

e

➘

➘

➚

➘

e

➘

➘

➘

e

➘

➚

➚

➚

➚

➘

➘

➘

➘

➘

➘

➚

➚

e

➚

➚

➘

#
Filter expression with dot notation with number

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

➘

➘

➘

➚

➚

➘

➘

➚

➘

➘

➚

➚

➘

➚

➚

➘

e

➘

e

e

➘

➚

➘

➚

e

➚

➚

➚

e

➘

➘

➘

➘

➘

➚

➚

➚

➚

➚

➚

➚

➚

e

➚

➘

➚

#
Filter expression with dot notation with number on array

$[?(@.2 == 'third')]

➚

➘

➘

➘

➚

➘

➚

➚

➘

➘

➘

➚

➚

➘

➚

➘

e

➘

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

➚

➘

➘

➘

➘

➘

➘

➚

➚

➘

➚

➚

➚

➘

➚

➘

➚

#
Filter expression with equals on array of numbers

$[?(@==42)]

✗

✗

✗

✓

✓

✗

✗

✓

✗

✓

✓

✓

✗

✓

✓

✗

✓

✓

✓

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

➚

➚

➚

➚

➚

➘

➚

➘

➘

➚

➚

#
Filter expression with equals false

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

➘

➘

➘

➚

➚

➘

➘

➚

➘

➚

➘

➚

➘

➚

➚

➘

➘

➚

➘

➘

➚

➚

➘

➘

e

➘

➚

➘

e

➘

➘

➘

➘

➘

➚

➘

➚

➚

➘

➚

➚

➚

➘

➘

➘

➚

#
Filter expression with equals null

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

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

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

➘

➘

➘

#
Filter expression with equals number for bracket notation with star

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

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

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

➘

➚

➚

➚

➚

➘

➚

➘

➚

➚

➘

➘

➚

➘

➘

➚

➘

#
Filter expression with equals number with leading zeros

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

➘

➘

➘

➘

➚

➚

➘

➚

➚

➚

➘

➚

➘

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

✓

✗

✗

✗

✗

✓

✗

✓

✓

✓

✗

✓

✓

✓

✓

✗

✓

#
Filter expression with equals string in NFC

$[?(@.key=="Motörhead")]

✗

✗

✗

✓

✓

✗

✗

✓

✗

✓

✗

✓

✗

✓

✓

✓

✓

✓

✓

✓

✓

✓

✗

✓

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 string with unicode character escape

$[?(@.key=="Mot\u00f6rhead")]

➚

➘

➚

➘

➘

➚

➚

➚

➚

➘

➘

➚

➚

➘

➚

➚

➘

➘

➘

➘

➚

➘

➘

➚

e

➚

➘

➚

e

➘

➘

➘

➘

➘

➚

➘

➚

➚

➘

➘

➘

➘

➘

➘

➘

➚

#
Filter expression with equals true

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

➘

➘

➘

➚

➚

➘

➘

➚

➘

➚

➘

➚

➘

➚

➚

➘

➘

➚

➘

➘

➚

➚

➘

➘

e

➚

➚

➘

e

➘

➘

➘

➘

➘

➚

➘

➚

➚

➘

➚

➚

➚

➘

➘

➘

➚

#
Filter expression with equals with path and path

$[?(@.key1==@.key2)]

➘

➚

➘

➘

➘

➚

➘

➘

➘

➘

➘

e

➘

➘

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

➚

➚

➘

➚

➘

➚

#
Filter expression with greater than or equal

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

➘

➘

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

➚

➚

➘

➚

➘

➚

#
Filter expression with less than or equal

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

➘

➘

e

➚

➚

➚

➘

➚

e

➘

➘

➚

➘

➚

➚

➘

➘

➘

➘

➘

e

➚

➘

➘

e

➘

➘

➘

e

➚

➘

➘

➘

➘

e

➘

➚

➚

➘

e

➚

➚

➘

➚

➘

➚

#
Filter expression with multiplication

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

➘

➚

➘

➘

➚

➚

➘

➚

e

➚

➘

➚

➘

➘

➘

➚

➘

➘

➘

➘

➚

➘

➚

➘

e

➚

➚

➘

e

➘

➚

➚

➚

➚

➘

➚

➚

➚

➘

➘

➘

➘

➘

➘

➚

➚

#
Filter expression with negation and equals

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

➘

➚

➘

➘

➚

➚

➘

➚

e

➚

➘

➘

➘

e

➘

➚

➘

➘

➘

➘

➘

➘

➚

➘

e

➘

➘

e

e

➘

➚

➚

➚

➚

e

➚

➚

➚

➘

➚

➘

➚

➘

➘

➚

➘

#
Filter expression with negation and less than

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

➘

➚

e

➘

➚

➚

➘

➚

e

➚

➘

➘

➘

e

➘

➚

➘

➘

➘

➘

➘

➘

➚

➘

e

➘

➘

e

e

➘

➚

➚

➚

➚

e

➚

➚

➚

➘

➚

➘

➚

➘

➘

➚

➘

#
Filter expression with negation and without value

$[?(!@.key)]

➘

➚

➘

➘

➚

➚

➘

➚

e

➚

➘

➘

➘

e

➘

➚

➘

➘

➘

➘

➚

➘

➚

➘

e

➘

➘

e

e

➘

➚

➚

➚

➚

e

➚

➚

➚

➘

➚

➘

➘

➘

➘

➚

➘

#
Filter expression with not equals

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

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

e

➘

➘

➘

e

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

➘

#
Filter expression with parent axis operator

$[*].bookmarks[?(@.page == 45)]^^^

✗

✓

✗

✗

✓

✓

✗

✓

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

