1 |
cts |
basic, root |
✓ |
✓ |
$ |
["first","second"] |
[["first","second"]] |
["$"] |
2 |
cts |
basic, no leading whitespace |
✓ |
✗ |
$ |
Parsing error in query line 1 column 1 unexpected character: ' '. |
3 |
cts |
basic, no trailing whitespace |
✓ |
✗ |
$ |
Parsing error in query line 1 column 1 unexpected character: ''. |
4 |
cts |
basic, name shorthand |
✓ |
✓ |
$.a |
{"a":"A","b":"B"} |
["A"] |
["$['a']"] |
5 |
cts |
basic, name shorthand, extended unicode ☺ |
✓ |
✓ |
$.☺ |
{"b":"B","☺":"A"} |
["A"] |
["$['☺']"] |
6 |
cts |
basic, name shorthand, underscore |
✓ |
✓ |
$._ |
{"_foo":"B","_":"A"} |
["A"] |
["$['_']"] |
7 |
cts |
basic, name shorthand, symbol |
✓ |
✗ |
$.& |
Parsing error in query line 1 column 2 unexpected character: '&'. |
8 |
cts |
basic, name shorthand, number |
✓ |
✗ |
$.1 |
Parsing error in query line 1 column 2 unexpected character: '1'. |
9 |
cts |
basic, name shorthand, absent data |
✓ |
✓ |
$.c |
{"a":"A","b":"B"} |
[] |
[] |
10 |
cts |
basic, name shorthand, array data |
✓ |
✓ |
$.a |
["first","second"] |
[] |
[] |
11 |
cts |
basic, name shorthand, object data, nested |
✓ |
✓ |
$.a.b.c |
{"a":{"b":{"c":"C"}}} |
["C"] |
["$['a']['b']['c']"] |
12 |
cts |
basic, wildcard shorthand, object data |
✓ |
✓ |
$.* |
{"a":"A","b":"B"} |
["A","B"] |
["$['a']","$['b']"] |
13 |
cts |
basic, wildcard shorthand, array data |
✓ |
✓ |
$.* |
["first","second"] |
["first","second"] |
["$[0]","$[1]"] |
14 |
cts |
basic, wildcard selector, array data |
✓ |
✓ |
$[*] |
["first","second"] |
["first","second"] |
["$[0]","$[1]"] |
15 |
cts |
basic, wildcard shorthand, then name shorthand |
✓ |
✓ |
$.*.a |
{"x":{"a":"Ax","b":"Bx"},"y":{"a":"Ay","b":"By"}} |
["Ax","Ay"] |
["$['x']['a']","$['y']['a']"] |
16 |
cts |
basic, multiple selectors |
✓ |
✓ |
$[0,2] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[0.0E0,2] |
["$[0]","$[2]"] |
17 |
cts |
basic, multiple selectors, space instead of comma |
✓ |
✗ |
$[0 2] |
Parsing error in query line 1 column 5 unexpected character: '2'. |
18 |
cts |
basic, selector, leading comma |
✓ |
✗ |
$[,0] |
Parsing error in query line 1 column 3 unexpected character: ','. |
19 |
cts |
basic, selector, trailing comma |
✓ |
✗ |
$[0,] |
Parsing error in query line 1 column 4 unexpected character: ']'. |
20 |
cts |
basic, multiple selectors, name and index, array data |
✓ |
✓ |
$[\'a\',1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[1] |
["$[1]"] |
21 |
cts |
basic, multiple selectors, name and index, object data |
✓ |
✓ |
$[\'a\',1] |
{"a":1,"b":2} |
[1] |
["$['a']"] |
22 |
cts |
basic, multiple selectors, index and slice |
✓ |
✓ |
$[1,5:7] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[1,5,6] |
["$[1]","$[5]","$[6]"] |
23 |
cts |
basic, multiple selectors, index and slice, overlapping |
✓ |
✓ |
$[1,0:3] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[1,0.0E0,1,2] |
["$[1]","$[0]","$[1]","$[2]"] |
24 |
cts |
basic, multiple selectors, duplicate index |
✓ |
✓ |
$[1,1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[1,1] |
["$[1]","$[1]"] |
25 |
cts |
basic, multiple selectors, wildcard and index |
✓ |
✓ |
$[*,1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[0.0E0,1,2,3,4,5,6,7,8,9,1] |
["$[0]","$[1]","$[2]","$[3]","$[4]","$[5]","$[6]","$[7]","$[8]","$[9]","$[1]"] |
26 |
cts |
basic, multiple selectors, wildcard and name |
✓ |
✓ |
$[*,\'a\'] |
{"a":"A","b":"B"} |
["A","B","A"] |
["$['a']","$['b']","$['a']"] |
27 |
cts |
basic, multiple selectors, wildcard and slice |
✓ |
✓ |
$[*,0:2] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[0.0E0,1,2,3,4,5,6,7,8,9,0.0E0,1] |
["$[0]","$[1]","$[2]","$[3]","$[4]","$[5]","$[6]","$[7]","$[8]","$[9]","$[0]","$[1]"] |
28 |
cts |
basic, multiple selectors, multiple wildcards |
✓ |
✓ |
$[*,*] |
[0.0E0,1,2] |
[0.0E0,1,2,0.0E0,1,2] |
["$[0]","$[1]","$[2]","$[0]","$[1]","$[2]"] |
29 |
cts |
basic, empty segment |
✓ |
✗ |
$[] |
Parsing error in query line 1 column 2 unexpected character: ']'. |
30 |
cts |
basic, descendant segment, index |
✓ |
✓ |
$..[1] |
{"o":[0.0E0,1,[2,3]]} |
[1,3] |
["$['o'][1]","$['o'][2][1]"] |
31 |
cts |
basic, descendant segment, name shorthand |
✓ |
✓ |
$..a |
{"o":[{"a":"b"},{"a":"c"}]} |
["b","c"] |
["$['o'][0]['a']","$['o'][1]['a']"] |
32 |
cts |
basic, name shorthand, true |
✓ |
✓ |
$.true |
{"true":"A","_foo":"B"} |
["A"] |
["$['true']"] |
33 |
cts |
basic, name shorthand, false |
✓ |
✓ |
$.false |
{"false":"A","_foo":"B"} |
["A"] |
["$['false']"] |
34 |
cts |
basic, name shorthand, null |
✓ |
✓ |
$.null |
{"null":"A","_foo":"B"} |
["A"] |
["$['null']"] |
35 |
cts |
basic, descendant segment, wildcard shorthand, array data |
✓ |
✓ |
$..* |
[0.0E0,1] |
[0.0E0,1] |
["$[0]","$[1]"] |
36 |
cts |
basic, descendant segment, wildcard selector, array data |
✓ |
✓ |
$..[*] |
[0.0E0,1] |
[0.0E0,1] |
["$[0]","$[1]"] |
37 |
cts |
basic, descendant segment, wildcard selector, nested arrays |
✓ |
✓ |
$..[*] |
[[[1]],[2]] |
[[[1]],[2],[1],1,2] |
["$[0]","$[1]","$[0][0]","$[0][0][0]","$[1][0]"] |
38 |
cts |
basic, descendant segment, wildcard selector, nested objects |
✓ |
✓ |
$..[*] |
{"a":{"c":{"e":1}},"b":{"d":2}} |
[{"c":{"e":1}},{"d":2},{"e":1},1,2] |
["$['a']","$['b']","$['a']['c']","$['a']['c']['e']","$['b']['d']"] |
39 |
cts |
basic, descendant segment, wildcard shorthand, object data |
✓ |
✓ |
$..* |
{"a":"b"} |
["b"] |
["$['a']"] |
40 |
cts |
basic, descendant segment, wildcard shorthand, nested data |
✓ |
✓ |
$..* |
{"o":[{"a":"b"}]} |
[[{"a":"b"}],{"a":"b"},"b"] |
["$['o']","$['o'][0]","$['o'][0]['a']"] |
41 |
cts |
basic, descendant segment, multiple selectors |
✓ |
✓ |
$..[\'a\',\'d\'] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
["b","e","c","f"] |
["$[0]['a']","$[0]['d']","$[1]['a']","$[1]['d']"] |
42 |
cts |
basic, descendant segment, object traversal, multiple selectors |
✓ |
✓ |
$..[\'a\',\'d\'] |
{"x":{"a":"b","d":"e"},"y":{"a":"c","d":"f"}} |
["b","e","c","f"] |
["$['x']['a']","$['x']['d']","$['y']['a']","$['y']['d']"] |
43 |
cts |
basic, bald descendant segment |
✓ |
✗ |
$.. |
Parsing error in query line 1 column 2 unexpected character: ''. |
44 |
cts |
basic, current node identifier without filter selector |
✓ |
✗ |
$[@.a] |
Parsing error in query line 1 column 3 unexpected character: '@'. |
45 |
cts |
basic, root node identifier in brackets without filter selector |
✓ |
✗ |
$[$.a] |
Parsing error in query line 1 column 3 unexpected character: '$'. |
46 |
cts |
filter, existence, without segments |
✓ |
✓ |
$[?@] |
{"a":1,"b":null} |
[1,null] |
["$['a']","$['b']"] |
47 |
cts |
filter, existence |
✓ |
✓ |
$[?@.a] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
48 |
cts |
filter, existence, present with null |
✓ |
✓ |
$[?@.a] |
[{"a":null,"d":"e"},{"b":"c","d":"f"}] |
[{"a":null,"d":"e"}] |
["$[0]"] |
49 |
cts |
filter, absolute existence, without segments |
✓ |
✓ |
$[?$] |
{"a":1,"b":null} |
[1,null] |
["$['a']","$['b']"] |
50 |
cts |
filter, absolute existence, with segments |
✓ |
✓ |
$[?$.*.a] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
["$[0]","$[1]"] |
51 |
cts |
filter, equals string, single quotes |
✓ |
✓ |
$[?@.a==\'b\'] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
52 |
cts |
filter, equals numeric string, single quotes |
✓ |
✓ |
$[?@.a==\'1\'] |
[{"a":"1","d":"e"},{"a":1,"d":"f"}] |
[{"a":"1","d":"e"}] |
["$[0]"] |
53 |
cts |
filter, equals string, double quotes |
✓ |
✓ |
$[?@.a=="b"] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
54 |
cts |
filter, equals numeric string, double quotes |
✓ |
✓ |
$[?@.a=="1"] |
[{"a":"1","d":"e"},{"a":1,"d":"f"}] |
[{"a":"1","d":"e"}] |
["$[0]"] |
55 |
cts |
filter, equals number |
✓ |
✓ |
$[?@.a==1] |
[{"a":1,"d":"e"},{"a":"c","d":"f"},{"a":2,"d":"f"},{"a":"1","d":"f"}] |
[{"a":1,"d":"e"}] |
["$[0]"] |
56 |
cts |
filter, equals null |
✓ |
✓ |
$[?@.a==null] |
[{"a":null,"d":"e"},{"a":"c","d":"f"}] |
[{"a":null,"d":"e"}] |
["$[0]"] |
57 |
cts |
filter, equals null, absent from data |
✓ |
✓ |
$[?@.a==null] |
[{"d":"e"},{"a":"c","d":"f"}] |
[] |
[] |
58 |
cts |
filter, equals true |
✓ |
✓ |
$[?@.a==true] |
[{"a":true,"d":"e"},{"a":"c","d":"f"}] |
[{"a":true,"d":"e"}] |
["$[0]"] |
59 |
cts |
filter, equals false |
✓ |
✓ |
$[?@.a==false] |
[{"a":false,"d":"e"},{"a":"c","d":"f"}] |
[{"a":false,"d":"e"}] |
["$[0]"] |
60 |
cts |
filter, equals self |
✓ |
✓ |
$[?@==@] |
[1,null,true,{"a":"b"},[false]] |
[1,null,true,{"a":"b"},[false]] |
["$[0]","$[1]","$[2]","$[3]","$[4]"] |
61 |
cts |
filter, absolute, equals self |
✓ |
✓ |
$[?$==$] |
[1,null,true,{"a":"b"},[false]] |
[1,null,true,{"a":"b"},[false]] |
["$[0]","$[1]","$[2]","$[3]","$[4]"] |
62 |
cts |
filter, equals, absent from index selector equals absent from name selector |
✓ |
✓ |
$[?@.absent==@.list[9]] |
[{"list":[1]}] |
[{"list":[1]}] |
["$[0]"] |
63 |
cts |
filter, deep equality, arrays |
✓ |
✓ |
$[?@.a==@.b] |
[{"a":false,"b":[1,2]},{"a":[[1,[2]]],"b":[[1,[2]]]},{"a":[[1,[2]]],"b":[[[2],1]]},{"a":[[1,[2]]],"b":[[1,2]]}] |
[{"a":[[1,[2]]],"b":[[1,[2]]]}] |
["$[1]"] |
64 |
cts |
filter, deep equality, objects |
✓ |
✓ |
$[?@.a==@.b] |
[{"a":false,"b":{"x":1,"y":{"z":1}}},{"a":{"x":1,"y":{"z":1}},"b":{"x":1,"y":{"z":1}}},{"a":{"x":1,"y":{"z":1}},"b":{"x":1,"y":{"z":1}}},{"a":{"x":1,"y":{"z":1}},"b":{"x":1}},{"a":{"x":1,"y":{"z":1}},"b":{"x":1,"y":{"z":2}}}] |
[{"a":{"x":1,"y":{"z":1}},"b":{"x":1,"y":{"z":1}}},{"a":{"x":1,"y":{"z":1}},"b":{"x":1,"y":{"z":1}}}] |
["$[1]","$[2]"] |
65 |
cts |
filter, not-equals string, single quotes |
✓ |
✓ |
$[?@.a!=\'b\'] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
[{"a":"c","d":"f"}] |
["$[1]"] |
66 |
cts |
filter, not-equals numeric string, single quotes |
✓ |
✓ |
$[?@.a!=\'1\'] |
[{"a":"1","d":"e"},{"a":1,"d":"f"}] |
[{"a":1,"d":"f"}] |
["$[1]"] |
67 |
cts |
filter, not-equals string, single quotes, different type |
✓ |
✓ |
$[?@.a!=\'b\'] |
[{"a":"b","d":"e"},{"a":1,"d":"f"}] |
[{"a":1,"d":"f"}] |
["$[1]"] |
68 |
cts |
filter, not-equals string, double quotes |
✓ |
✓ |
$[?@.a!="b"] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
[{"a":"c","d":"f"}] |
["$[1]"] |
69 |
cts |
filter, not-equals numeric string, double quotes |
✓ |
✓ |
$[?@.a!="1"] |
[{"a":"1","d":"e"},{"a":1,"d":"f"}] |
[{"a":1,"d":"f"}] |
["$[1]"] |
70 |
cts |
filter, not-equals string, double quotes, different types |
✓ |
✓ |
$[?@.a!="b"] |
[{"a":"b","d":"e"},{"a":1,"d":"f"}] |
[{"a":1,"d":"f"}] |
["$[1]"] |
71 |
cts |
filter, not-equals number |
✓ |
✓ |
$[?@.a!=1] |
[{"a":1,"d":"e"},{"a":2,"d":"f"},{"a":"1","d":"f"}] |
[{"a":2,"d":"f"},{"a":"1","d":"f"}] |
["$[1]","$[2]"] |
72 |
cts |
filter, not-equals number, different types |
✓ |
✓ |
$[?@.a!=1] |
[{"a":1,"d":"e"},{"a":"c","d":"f"}] |
[{"a":"c","d":"f"}] |
["$[1]"] |
73 |
cts |
filter, not-equals null |
✓ |
✓ |
$[?@.a!=null] |
[{"a":null,"d":"e"},{"a":"c","d":"f"}] |
[{"a":"c","d":"f"}] |
["$[1]"] |
74 |
cts |
filter, not-equals null, absent from data |
✓ |
✓ |
$[?@.a!=null] |
[{"d":"e"},{"a":"c","d":"f"}] |
[{"d":"e"},{"a":"c","d":"f"}] |
["$[0]","$[1]"] |
75 |
cts |
filter, not-equals true |
✓ |
✓ |
$[?@.a!=true] |
[{"a":true,"d":"e"},{"a":"c","d":"f"}] |
[{"a":"c","d":"f"}] |
["$[1]"] |
76 |
cts |
filter, not-equals false |
✓ |
✓ |
$[?@.a!=false] |
[{"a":false,"d":"e"},{"a":"c","d":"f"}] |
[{"a":"c","d":"f"}] |
["$[1]"] |
77 |
cts |
filter, less than string, single quotes |
✓ |
✓ |
$[?@.a<\'c\'] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
78 |
cts |
filter, less than string, double quotes |
✓ |
✓ |
$[?@.a<"c"] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
79 |
cts |
filter, less than number |
✓ |
✓ |
$[?@.a<10] |
[{"a":1,"d":"e"},{"a":10,"d":"e"},{"a":"c","d":"f"},{"a":20,"d":"f"}] |
[{"a":1,"d":"e"}] |
["$[0]"] |
80 |
cts |
filter, less than null |
✓ |
✓ |
$[?@.a<null] |
[{"a":null,"d":"e"},{"a":"c","d":"f"}] |
[] |
[] |
81 |
cts |
filter, less than true |
✓ |
✓ |
$[?@.a<true] |
[{"a":true,"d":"e"},{"a":"c","d":"f"}] |
[] |
[] |
82 |
cts |
filter, less than false |
✓ |
✓ |
$[?@.a<false] |
[{"a":false,"d":"e"},{"a":"c","d":"f"}] |
[] |
[] |
83 |
cts |
filter, less than or equal to string, single quotes |
✓ |
✓ |
$[?@.a<=\'c\'] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
["$[0]","$[1]"] |
84 |
cts |
filter, less than or equal to string, double quotes |
✓ |
✓ |
$[?@.a<="c"] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
[{"a":"b","d":"e"},{"a":"c","d":"f"}] |
["$[0]","$[1]"] |
85 |
cts |
filter, less than or equal to number |
✓ |
✓ |
$[?@.a<=10] |
[{"a":1,"d":"e"},{"a":10,"d":"e"},{"a":"c","d":"f"},{"a":20,"d":"f"}] |
[{"a":1,"d":"e"},{"a":10,"d":"e"}] |
["$[0]","$[1]"] |
86 |
cts |
filter, less than or equal to null |
✓ |
✓ |
$[?@.a<=null] |
[{"a":null,"d":"e"},{"a":"c","d":"f"}] |
[{"a":null,"d":"e"}] |
["$[0]"] |
87 |
cts |
filter, less than or equal to true |
✓ |
✓ |
$[?@.a<=true] |
[{"a":true,"d":"e"},{"a":"c","d":"f"}] |
[{"a":true,"d":"e"}] |
["$[0]"] |
88 |
cts |
filter, less than or equal to false |
✓ |
✓ |
$[?@.a<=false] |
[{"a":false,"d":"e"},{"a":"c","d":"f"}] |
[{"a":false,"d":"e"}] |
["$[0]"] |
89 |
cts |
filter, greater than string, single quotes |
✓ |
✓ |
$[?@.a>\'c\'] |
[{"a":"b","d":"e"},{"a":"c","d":"f"},{"a":"d","d":"f"}] |
[{"a":"d","d":"f"}] |
["$[2]"] |
90 |
cts |
filter, greater than string, double quotes |
✓ |
✓ |
$[?@.a>"c"] |
[{"a":"b","d":"e"},{"a":"c","d":"f"},{"a":"d","d":"f"}] |
[{"a":"d","d":"f"}] |
["$[2]"] |
91 |
cts |
filter, greater than number |
✓ |
✓ |
$[?@.a>10] |
[{"a":1,"d":"e"},{"a":10,"d":"e"},{"a":"c","d":"f"},{"a":20,"d":"f"}] |
[{"a":20,"d":"f"}] |
["$[3]"] |
92 |
cts |
filter, greater than null |
✓ |
✓ |
$[?@.a>null] |
[{"a":null,"d":"e"},{"a":"c","d":"f"}] |
[] |
[] |
93 |
cts |
filter, greater than true |
✓ |
✓ |
$[?@.a>true] |
[{"a":true,"d":"e"},{"a":"c","d":"f"}] |
[] |
[] |
94 |
cts |
filter, greater than false |
✓ |
✓ |
$[?@.a>false] |
[{"a":false,"d":"e"},{"a":"c","d":"f"}] |
[] |
[] |
95 |
cts |
filter, greater than or equal to string, single quotes |
✓ |
✓ |
$[?@.a>=\'c\'] |
[{"a":"b","d":"e"},{"a":"c","d":"f"},{"a":"d","d":"f"}] |
[{"a":"c","d":"f"},{"a":"d","d":"f"}] |
["$[1]","$[2]"] |
96 |
cts |
filter, greater than or equal to string, double quotes |
✓ |
✓ |
$[?@.a>="c"] |
[{"a":"b","d":"e"},{"a":"c","d":"f"},{"a":"d","d":"f"}] |
[{"a":"c","d":"f"},{"a":"d","d":"f"}] |
["$[1]","$[2]"] |
97 |
cts |
filter, greater than or equal to number |
✓ |
✓ |
$[?@.a>=10] |
[{"a":1,"d":"e"},{"a":10,"d":"e"},{"a":"c","d":"f"},{"a":20,"d":"f"}] |
[{"a":10,"d":"e"},{"a":20,"d":"f"}] |
["$[1]","$[3]"] |
98 |
cts |
filter, greater than or equal to null |
✓ |
✓ |
$[?@.a>=null] |
[{"a":null,"d":"e"},{"a":"c","d":"f"}] |
[{"a":null,"d":"e"}] |
["$[0]"] |
99 |
cts |
filter, greater than or equal to true |
✓ |
✓ |
$[?@.a>=true] |
[{"a":true,"d":"e"},{"a":"c","d":"f"}] |
[{"a":true,"d":"e"}] |
["$[0]"] |
100 |
cts |
filter, greater than or equal to false |
✓ |
✓ |
$[?@.a>=false] |
[{"a":false,"d":"e"},{"a":"c","d":"f"}] |
[{"a":false,"d":"e"}] |
["$[0]"] |
101 |
cts |
filter, exists and not-equals null, absent from data |
✓ |
✓ |
$[?@.a&&@.a!=null] |
[{"d":"e"},{"a":"c","d":"f"}] |
[{"a":"c","d":"f"}] |
["$[1]"] |
102 |
cts |
filter, exists and exists, data false |
✓ |
✓ |
$[?@.a&&@.b] |
[{"a":false,"b":false},{"b":false},{"c":false}] |
[{"a":false,"b":false}] |
["$[0]"] |
103 |
cts |
filter, exists or exists, data false |
✓ |
✓ |
$[?@.a||@.b] |
[{"a":false,"b":false},{"b":false},{"c":false}] |
[{"a":false,"b":false},{"b":false}] |
["$[0]","$[1]"] |
104 |
cts |
filter, and |
✓ |
✓ |
$[?@.a>0&&@.a<10] |
[{"a":-10,"d":"e"},{"a":5,"d":"f"},{"a":20,"d":"f"}] |
[{"a":5,"d":"f"}] |
["$[1]"] |
105 |
cts |
filter, or |
✓ |
✓ |
$[?@.a==\'b\'||@.a==\'d\'] |
[{"a":"a","d":"e"},{"a":"b","d":"f"},{"a":"c","d":"f"},{"a":"d","d":"f"}] |
[{"a":"b","d":"f"},{"a":"d","d":"f"}] |
["$[1]","$[3]"] |
106 |
cts |
filter, not expression |
✓ |
✓ |
$[?!(@.a==\'b\')] |
[{"a":"a","d":"e"},{"a":"b","d":"f"},{"a":"d","d":"f"}] |
[{"a":"a","d":"e"},{"a":"d","d":"f"}] |
["$[0]","$[2]"] |
107 |
cts |
filter, not exists |
✓ |
✓ |
$[?!@.a] |
[{"a":"a","d":"e"},{"d":"f"},{"a":"d","d":"f"}] |
[{"d":"f"}] |
["$[1]"] |
108 |
cts |
filter, not exists, data null |
✓ |
✓ |
$[?!@.a] |
[{"a":null,"d":"e"},{"d":"f"},{"a":"d","d":"f"}] |
[{"d":"f"}] |
["$[1]"] |
109 |
cts |
filter, non-singular existence, wildcard |
✓ |
✓ |
$[?@.*] |
[1,[],[2],{},{"a":3}] |
[[2],{"a":3}] |
["$[2]","$[4]"] |
110 |
cts |
filter, non-singular existence, multiple |
✓ |
✓ |
$[?@[0, 0, \'a\']] |
[1,[],[2],[2,3],{"a":3},{"b":4},{"a":3,"b":4}] |
[[2],[2,3],{"a":3},{"a":3,"b":4}] |
["$[2]","$[3]","$[4]","$[6]"] |
111 |
cts |
filter, non-singular existence, slice |
✓ |
✓ |
$[?@[0:2]] |
[1,[],[2],[2,3,4],{},{"a":3}] |
[[2],[2,3,4]] |
["$[2]","$[3]"] |
112 |
cts |
filter, non-singular existence, negated |
✓ |
✓ |
$[?!@.*] |
[1,[],[2],{},{"a":3}] |
[1,[],{}] |
["$[0]","$[1]","$[3]"] |
113 |
cts |
filter, non-singular query in comparison, slice |
✓ |
✗ |
$[?@[0:0]==0] |
Parsing error in query line 1 column 10 unexpected character: '='. |
114 |
cts |
filter, non-singular query in comparison, all children |
✓ |
✗ |
$[?@[*]==0] |
Parsing error in query line 1 column 8 unexpected character: '='. |
115 |
cts |
filter, non-singular query in comparison, descendants |
✓ |
✗ |
$[?@..a==0] |
Parsing error in query line 1 column 8 unexpected character: '='. |
116 |
cts |
filter, non-singular query in comparison, combined |
✓ |
✗ |
$[?@.a[*].a==0] |
Parsing error in query line 1 column 12 unexpected character: '='. |
117 |
cts |
filter, nested |
✓ |
✓ |
$[?@[?@>1]] |
[[0.0E0],[0.0E0,1],[0.0E0,1,2],[42]] |
[[0.0E0,1,2],[42]] |
["$[2]","$[3]"] |
118 |
cts |
filter, name segment on primitive, selects nothing |
✓ |
✓ |
$[?@.a == 1] |
{"a":1} |
[] |
[] |
119 |
cts |
filter, name segment on array, selects nothing |
✓ |
✓ |
$[?@[\'0\'] == 5] |
[[5,6]] |
[] |
[] |
120 |
cts |
filter, index segment on object, selects nothing |
✓ |
✓ |
$[?@[0] == 5] |
[{"0":5}] |
[] |
[] |
121 |
cts |
filter, followed by name selector |
✓ |
✓ |
$[?@.a==1].b.x |
[{"a":1,"b":{"x":2}}] |
[2] |
["$[0]['b']['x']"] |
122 |
cts |
filter, followed by child segment that selects multiple elements |
✓ |
✓ |
$[?@.z==\'_\'][\'x\',\'y\'] |
[{"x":1,"y":null,"z":"_"}] |
[1,null] |
["$[0]['x']","$[0]['y']"] |
123 |
cts |
filter, relative non-singular query, index, equal |
✓ |
✗ |
$[?(@[0, 0]==42)] |
Parsing error in query line 1 column 12 unexpected character: '='. |
124 |
cts |
filter, relative non-singular query, index, not equal |
✓ |
✗ |
$[?(@[0, 0]!=42)] |
Parsing error in query line 1 column 12 unexpected character: '!'. |
125 |
cts |
filter, relative non-singular query, index, less-or-equal |
✓ |
✗ |
$[?(@[0, 0]<=42)] |
Parsing error in query line 1 column 12 unexpected character: '<'. |
126 |
cts |
filter, relative non-singular query, name, equal |
✓ |
✗ |
$[?(@[\'a\', \'a\']==42)] |
Parsing error in query line 1 column 16 unexpected character: '='. |
127 |
cts |
filter, relative non-singular query, name, not equal |
✓ |
✗ |
$[?(@[\'a\', \'a\']!=42)] |
Parsing error in query line 1 column 16 unexpected character: '!'. |
128 |
cts |
filter, relative non-singular query, name, less-or-equal |
✓ |
✗ |
$[?(@[\'a\', \'a\']<=42)] |
Parsing error in query line 1 column 16 unexpected character: '<'. |
129 |
cts |
filter, relative non-singular query, combined, equal |
✓ |
✗ |
$[?(@[0, \'0\']==42)] |
Parsing error in query line 1 column 14 unexpected character: '='. |
130 |
cts |
filter, relative non-singular query, combined, not equal |
✓ |
✗ |
$[?(@[0, \'0\']!=42)] |
Parsing error in query line 1 column 14 unexpected character: '!'. |
131 |
cts |
filter, relative non-singular query, combined, less-or-equal |
✓ |
✗ |
$[?(@[0, \'0\']<=42)] |
Parsing error in query line 1 column 14 unexpected character: '<'. |
132 |
cts |
filter, relative non-singular query, wildcard, equal |
✓ |
✗ |
$[?(@.*==42)] |
Parsing error in query line 1 column 8 unexpected character: '='. |
133 |
cts |
filter, relative non-singular query, wildcard, not equal |
✓ |
✗ |
$[?(@.*!=42)] |
Parsing error in query line 1 column 8 unexpected character: '!'. |
134 |
cts |
filter, relative non-singular query, wildcard, less-or-equal |
✓ |
✗ |
$[?(@.*<=42)] |
Parsing error in query line 1 column 8 unexpected character: '<'. |
135 |
cts |
filter, relative non-singular query, slice, equal |
✓ |
✗ |
$[?(@[0:0]==42)] |
Parsing error in query line 1 column 11 unexpected character: '='. |
136 |
cts |
filter, relative non-singular query, slice, not equal |
✓ |
✗ |
$[?(@[0:0]!=42)] |
Parsing error in query line 1 column 11 unexpected character: '!'. |
137 |
cts |
filter, relative non-singular query, slice, less-or-equal |
✓ |
✗ |
$[?(@[0:0]<=42)] |
Parsing error in query line 1 column 11 unexpected character: '<'. |
138 |
cts |
filter, absolute non-singular query, index, equal |
✓ |
✗ |
$[?($[0, 0]==42)] |
Parsing error in query line 1 column 12 unexpected character: '='. |
139 |
cts |
filter, absolute non-singular query, index, not equal |
✓ |
✗ |
$[?($[0, 0]!=42)] |
Parsing error in query line 1 column 12 unexpected character: '!'. |
140 |
cts |
filter, absolute non-singular query, index, less-or-equal |
✓ |
✗ |
$[?($[0, 0]<=42)] |
Parsing error in query line 1 column 12 unexpected character: '<'. |
141 |
cts |
filter, absolute non-singular query, name, equal |
✓ |
✗ |
$[?($[\'a\', \'a\']==42)] |
Parsing error in query line 1 column 16 unexpected character: '='. |
142 |
cts |
filter, absolute non-singular query, name, not equal |
✓ |
✗ |
$[?($[\'a\', \'a\']!=42)] |
Parsing error in query line 1 column 16 unexpected character: '!'. |
143 |
cts |
filter, absolute non-singular query, name, less-or-equal |
✓ |
✗ |
$[?($[\'a\', \'a\']<=42)] |
Parsing error in query line 1 column 16 unexpected character: '<'. |
144 |
cts |
filter, absolute non-singular query, combined, equal |
✓ |
✗ |
$[?($[0, \'0\']==42)] |
Parsing error in query line 1 column 14 unexpected character: '='. |
145 |
cts |
filter, absolute non-singular query, combined, not equal |
✓ |
✗ |
$[?($[0, \'0\']!=42)] |
Parsing error in query line 1 column 14 unexpected character: '!'. |
146 |
cts |
filter, absolute non-singular query, combined, less-or-equal |
✓ |
✗ |
$[?($[0, \'0\']<=42)] |
Parsing error in query line 1 column 14 unexpected character: '<'. |
147 |
cts |
filter, absolute non-singular query, wildcard, equal |
✓ |
✗ |
$[?($.*==42)] |
Parsing error in query line 1 column 8 unexpected character: '='. |
148 |
cts |
filter, absolute non-singular query, wildcard, not equal |
✓ |
✗ |
$[?($.*!=42)] |
Parsing error in query line 1 column 8 unexpected character: '!'. |
149 |
cts |
filter, absolute non-singular query, wildcard, less-or-equal |
✓ |
✗ |
$[?($.*<=42)] |
Parsing error in query line 1 column 8 unexpected character: '<'. |
150 |
cts |
filter, absolute non-singular query, slice, equal |
✓ |
✗ |
$[?($[0:0]==42)] |
Parsing error in query line 1 column 11 unexpected character: '='. |
151 |
cts |
filter, absolute non-singular query, slice, not equal |
✓ |
✗ |
$[?($[0:0]!=42)] |
Parsing error in query line 1 column 11 unexpected character: '!'. |
152 |
cts |
filter, absolute non-singular query, slice, less-or-equal |
✓ |
✗ |
$[?($[0:0]<=42)] |
Parsing error in query line 1 column 11 unexpected character: '<'. |
153 |
cts |
filter, multiple selectors |
✓ |
✓ |
$[?@.a,?@.b] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
["$[0]","$[1]"] |
154 |
cts |
filter, multiple selectors, comparison |
✓ |
✓ |
$[?@.a==\'b\',?@.b==\'x\'] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
155 |
cts |
filter, multiple selectors, overlapping |
✓ |
✓ |
$[?@.a,?@.d] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"},{"a":"b","d":"e"},{"b":"c","d":"f"}] |
["$[0]","$[0]","$[1]"] |
156 |
cts |
filter, multiple selectors, filter and index |
✓ |
✓ |
$[?@.a,1] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
["$[0]","$[1]"] |
157 |
cts |
filter, multiple selectors, filter and wildcard |
✓ |
✓ |
$[?@.a,*] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"},{"a":"b","d":"e"},{"b":"c","d":"f"}] |
["$[0]","$[0]","$[1]"] |
158 |
cts |
filter, multiple selectors, filter and slice |
✓ |
✓ |
$[?@.a,1:] |
[{"a":"b","d":"e"},{"b":"c","d":"f"},{"g":"h"}] |
[{"a":"b","d":"e"},{"b":"c","d":"f"},{"g":"h"}] |
["$[0]","$[1]","$[2]"] |
159 |
cts |
filter, multiple selectors, comparison filter, index and slice |
✓ |
✓ |
$[1, ?@.a==\'b\', 1:] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"b":"c","d":"f"},{"a":"b","d":"e"},{"b":"c","d":"f"}] |
["$[1]","$[0]","$[1]"] |
160 |
cts |
filter, equals number, zero and negative zero |
✓ |
✓ |
$[?@.a==0] |
[{"a":0.0E0,"d":"e"},{"a":0.1,"d":"f"},{"a":"0","d":"g"}] |
[{"a":0.0E0,"d":"e"}] |
["$[0]"] |
161 |
cts |
filter, equals number, negative zero and zero |
✓ |
✓ |
$[?@.a==-0] |
[{"a":0.0E0,"d":"e"},{"a":0.1,"d":"f"},{"a":"0","d":"g"}] |
[{"a":0.0E0,"d":"e"}] |
["$[0]"] |
162 |
cts |
filter, equals number, with and without decimal fraction |
✓ |
✓ |
$[?@.a==1.0] |
[{"a":1,"d":"e"},{"a":2,"d":"f"},{"a":"1","d":"g"}] |
[{"a":1,"d":"e"}] |
["$[0]"] |
163 |
cts |
filter, equals number, exponent |
✓ |
✓ |
$[?@.a==1e2] |
[{"a":100,"d":"e"},{"a":100.1,"d":"f"},{"a":"100","d":"g"}] |
[{"a":100,"d":"e"}] |
["$[0]"] |
164 |
cts |
filter, equals number, exponent upper e |
✓ |
✓ |
$[?@.a==1E2] |
[{"a":100,"d":"e"},{"a":100.1,"d":"f"},{"a":"100","d":"g"}] |
[{"a":100,"d":"e"}] |
["$[0]"] |
165 |
cts |
filter, equals number, positive exponent |
✓ |
✓ |
$[?@.a==1e+2] |
[{"a":100,"d":"e"},{"a":100.1,"d":"f"},{"a":"100","d":"g"}] |
[{"a":100,"d":"e"}] |
["$[0]"] |
166 |
cts |
filter, equals number, negative exponent |
✓ |
✓ |
$[?@.a==1e-2] |
[{"a":0.01,"d":"e"},{"a":0.02,"d":"f"},{"a":"0.01","d":"g"}] |
[{"a":0.01,"d":"e"}] |
["$[0]"] |
167 |
cts |
filter, equals number, exponent 0 |
✓ |
✓ |
$[?@.a==1e0] |
[{"a":1,"d":"e"},{"a":2,"d":"f"},{"a":"1","d":"g"}] |
[{"a":1,"d":"e"}] |
["$[0]"] |
168 |
cts |
filter, equals number, exponent -0 |
✓ |
✓ |
$[?@.a==1e-0] |
[{"a":1,"d":"e"},{"a":2,"d":"f"},{"a":"1","d":"g"}] |
[{"a":1,"d":"e"}] |
["$[0]"] |
169 |
cts |
filter, equals number, exponent +0 |
✓ |
✓ |
$[?@.a==1e+0] |
[{"a":1,"d":"e"},{"a":2,"d":"f"},{"a":"1","d":"g"}] |
[{"a":1,"d":"e"}] |
["$[0]"] |
170 |
cts |
filter, equals number, exponent leading -0 |
✓ |
✓ |
$[?@.a==1e-02] |
[{"a":0.01,"d":"e"},{"a":0.02,"d":"f"},{"a":"0.01","d":"g"}] |
[{"a":0.01,"d":"e"}] |
["$[0]"] |
171 |
cts |
filter, equals number, exponent +00 |
✓ |
✓ |
$[?@.a==1e+00] |
[{"a":1,"d":"e"},{"a":2,"d":"f"},{"a":"1","d":"g"}] |
[{"a":1,"d":"e"}] |
["$[0]"] |
172 |
cts |
filter, equals number, decimal fraction |
✓ |
✓ |
$[?@.a==1.1] |
[{"a":1.1,"d":"e"},{"a":1,"d":"f"},{"a":"1.1","d":"g"}] |
[{"a":1.1,"d":"e"}] |
["$[0]"] |
173 |
cts |
filter, equals number, decimal fraction, trailing 0 |
✓ |
✓ |
$[?@.a==1.10] |
[{"a":1.1,"d":"e"},{"a":1,"d":"f"},{"a":"1.1","d":"g"}] |
[{"a":1.1,"d":"e"}] |
["$[0]"] |
174 |
cts |
filter, equals number, decimal fraction, exponent |
✓ |
✓ |
$[?@.a==1.1e2] |
[{"a":110,"d":"e"},{"a":110.1,"d":"f"},{"a":"110","d":"g"}] |
[{"a":110,"d":"e"}] |
["$[0]"] |
175 |
cts |
filter, equals number, decimal fraction, positive exponent |
✓ |
✓ |
$[?@.a==1.1e+2] |
[{"a":110,"d":"e"},{"a":110.1,"d":"f"},{"a":"110","d":"g"}] |
[{"a":110,"d":"e"}] |
["$[0]"] |
176 |
cts |
filter, equals number, decimal fraction, negative exponent |
✓ |
✓ |
$[?@.a==1.1e-2] |
[{"a":0.011,"d":"e"},{"a":0.012,"d":"f"},{"a":"0.011","d":"g"}] |
[{"a":0.011,"d":"e"}] |
["$[0]"] |
177 |
cts |
filter, equals number, invalid plus |
✓ |
✗ |
$[?@.a==+1] |
Parsing error in query line 1 column 9 unexpected character: '+'. |
178 |
cts |
filter, equals number, invalid minus space |
✓ |
✗ |
$[?@.a==- 1] |
Parsing error in query line 1 column 10 unexpected character: ' '. |
179 |
cts |
filter, equals number, invalid double minus |
✓ |
✗ |
$[?@.a==--1] |
Parsing error in query line 1 column 10 unexpected character: '-'. |
180 |
cts |
filter, equals number, invalid no int digit |
✓ |
✗ |
$[?@.a==.1] |
Parsing error in query line 1 column 9 unexpected character: '.'. |
181 |
cts |
filter, equals number, invalid minus no int digit |
✓ |
✗ |
$[?@.a==-.1] |
Parsing error in query line 1 column 10 unexpected character: '.'. |
182 |
cts |
filter, equals number, invalid 00 |
✓ |
✗ |
$[?@.a==00] |
Parsing error in query line 1 column 10 unexpected character: '0'. |
183 |
cts |
filter, equals number, invalid leading 0 |
✓ |
✗ |
$[?@.a==01] |
Parsing error in query line 1 column 10 unexpected character: '1'. |
184 |
cts |
filter, equals number, invalid no fractional digit |
✓ |
✗ |
$[?@.a==1.] |
Parsing error in query line 1 column 10 unexpected character: ']'. |
185 |
cts |
filter, equals number, invalid middle minus |
✓ |
✗ |
$[?@.a==1.-1] |
Parsing error in query line 1 column 11 unexpected character: '-'. |
186 |
cts |
filter, equals number, invalid no fractional digit e |
✓ |
✗ |
$[?@.a==1.e1] |
Parsing error in query line 1 column 11 unexpected character: 'e'. |
187 |
cts |
filter, equals number, invalid no e digit |
✓ |
✗ |
$[?@.a==1e] |
Parsing error in query line 1 column 10 unexpected character: ']'. |
188 |
cts |
filter, equals number, invalid no e digit minus |
✓ |
✗ |
$[?@.a==1e-] |
Parsing error in query line 1 column 11 unexpected character: ']'. |
189 |
cts |
filter, equals number, invalid double e |
✓ |
✗ |
$[?@.a==1eE1] |
Parsing error in query line 1 column 11 unexpected character: 'E'. |
190 |
cts |
filter, equals number, invalid e digit double minus |
✓ |
✗ |
$[?@.a==1e--1] |
Parsing error in query line 1 column 12 unexpected character: '-'. |
191 |
cts |
filter, equals number, invalid e digit plus minus |
✓ |
✗ |
$[?@.a==1e+-1] |
Parsing error in query line 1 column 12 unexpected character: '-'. |
192 |
cts |
filter, equals number, invalid e decimal |
✓ |
✗ |
$[?@.a==1e2.3] |
Parsing error in query line 1 column 12 unexpected character: '.'. |
193 |
cts |
filter, equals number, invalid multi e |
✓ |
✗ |
$[?@.a==1e2e3] |
Parsing error in query line 1 column 12 unexpected character: 'e'. |
194 |
cts |
filter, equals, special nothing |
✓ |
✓ |
$.values[?length(@.a) == value($..c)] |
{"c":"cd","values":[{"a":"ab"},{"c":"d"},{"a":null}]} |
[{"c":"d"},{"a":null}] |
["$['values'][1]","$['values'][2]"] |
195 |
cts |
filter, equals, empty node list and empty node list |
✓ |
✓ |
$[?@.a == @.b] |
[{"a":1},{"b":2},{"c":3}] |
[{"c":3}] |
["$[2]"] |
196 |
cts |
filter, equals, empty node list and special nothing |
✓ |
✓ |
$[?@.a == length(@.b)] |
[{"a":1},{"b":2},{"c":3}] |
[{"b":2},{"c":3}] |
["$[1]","$[2]"] |
197 |
cts |
filter, object data |
✓ |
✓ |
$[?@<3] |
{"a":1,"b":2,"c":3} |
[1,2] |
["$['a']","$['b']"] |
198 |
cts |
filter, and binds more tightly than or |
✓ |
✓ |
$[?@.a || @.b && @.c] |
[{"a":1},{"b":2,"c":3},{"c":3},{"b":2},{"a":1,"b":2,"c":3}] |
[{"a":1},{"b":2,"c":3},{"a":1,"b":2,"c":3}] |
["$[0]","$[1]","$[4]"] |
199 |
cts |
filter, left to right evaluation |
✓ |
✓ |
$[?@.a && @.b || @.c] |
[{"a":1},{"b":2},{"a":1,"b":2},{"a":1,"c":3},{"b":1,"c":3},{"c":3},{"a":1,"b":2,"c":3}] |
[{"a":1,"b":2},{"a":1,"c":3},{"b":1,"c":3},{"c":3},{"a":1,"b":2,"c":3}] |
["$[2]","$[3]","$[4]","$[5]","$[6]"] |
200 |
cts |
filter, group terms, left |
✓ |
✓ |
$[?(@.a || @.b) && @.c] |
[{"a":1,"b":2},{"a":1,"c":3},{"b":2,"c":3},{"a":1},{"b":2},{"c":3},{"a":1,"b":2,"c":3}] |
[{"a":1,"c":3},{"b":2,"c":3},{"a":1,"b":2,"c":3}] |
["$[1]","$[2]","$[6]"] |
201 |
cts |
filter, group terms, right |
✓ |
✓ |
$[?@.a && (@.b || @.c)] |
[{"a":1},{"a":1,"b":2},{"a":1,"c":2},{"b":2},{"c":2},{"a":1,"b":2,"c":3}] |
[{"a":1,"b":2},{"a":1,"c":2},{"a":1,"b":2,"c":3}] |
["$[1]","$[2]","$[5]"] |
202 |
cts |
filter, string literal, single quote in double quotes |
✓ |
✓ |
$[?@ == "quoted\' literal"] |
["quoted\' literal","a","quoted\\\\\' literal"] |
["quoted\' literal"] |
["$[0]"] |
203 |
cts |
filter, string literal, double quote in single quotes |
✓ |
✓ |
$[?@ == \'quoted" literal\'] |
["quoted\\" literal","a","quoted\\\\\\" literal","\'quoted\\" literal\'"] |
["quoted\\" literal"] |
["$[0]"] |
204 |
cts |
filter, string literal, escaped single quote in single quotes |
✓ |
✓ |
$[?@ == \'quoted\\\' literal\'] |
["quoted\' literal","a","quoted\\\\\' literal","\'quoted\\" literal\'"] |
["quoted\' literal"] |
["$[0]"] |
205 |
cts |
filter, string literal, escaped double quote in double quotes |
✓ |
✓ |
$[?@ == "quoted\\" literal"] |
["quoted\\" literal","a","quoted\\\\\\" literal","\'quoted\\" literal\'"] |
["quoted\\" literal"] |
["$[0]"] |
206 |
cts |
filter, literal true must be compared |
✓ |
✗ |
$[?true] |
Parsing error in query line 1 column 7 unexpected character: ']'. |
207 |
cts |
filter, literal false must be compared |
✓ |
✗ |
$[?false] |
Parsing error in query line 1 column 8 unexpected character: ']'. |
208 |
cts |
filter, literal string must be compared |
✓ |
✗ |
$[?\'abc\'] |
Parsing error in query line 1 column 8 unexpected character: ']'. |
209 |
cts |
filter, literal int must be compared |
✓ |
✗ |
$[?2] |
Parsing error in query line 1 column 4 unexpected character: ']'. |
210 |
cts |
filter, literal float must be compared |
✓ |
✗ |
$[?2.2] |
Parsing error in query line 1 column 6 unexpected character: ']'. |
211 |
cts |
filter, literal null must be compared |
✓ |
✗ |
$[?null] |
Parsing error in query line 1 column 7 unexpected character: ']'. |
212 |
cts |
filter, and, literals must be compared |
✓ |
✗ |
$[?true && false] |
Parsing error in query line 1 column 9 unexpected character: '&'. |
213 |
cts |
filter, or, literals must be compared |
✓ |
✗ |
$[?true || false] |
Parsing error in query line 1 column 9 unexpected character: '|'. |
214 |
cts |
filter, and, right hand literal must be compared |
✓ |
✗ |
$[?true == false && false] |
Parsing error in query line 1 column 25 unexpected character: ']'. |
215 |
cts |
filter, or, right hand literal must be compared |
✓ |
✗ |
$[?true == false || false] |
Parsing error in query line 1 column 25 unexpected character: ']'. |
216 |
cts |
filter, and, left hand literal must be compared |
✓ |
✗ |
$[?false && true == false] |
Parsing error in query line 1 column 10 unexpected character: '&'. |
217 |
cts |
filter, or, left hand literal must be compared |
✓ |
✗ |
$[?false || true == false] |
Parsing error in query line 1 column 10 unexpected character: '|'. |
218 |
cts |
filter, true, incorrectly capitalized |
✓ |
✗ |
$[?@==True] |
Parsing error in query line 1 column 7 unexpected character: 'T'. |
219 |
cts |
filter, false, incorrectly capitalized |
✓ |
✗ |
$[?@==False] |
Parsing error in query line 1 column 7 unexpected character: 'F'. |
220 |
cts |
filter, null, incorrectly capitalized |
✓ |
✗ |
$[?@==Null] |
Parsing error in query line 1 column 7 unexpected character: 'N'. |
221 |
cts |
index selector, first element |
✓ |
✓ |
$[0] |
["first","second"] |
["first"] |
["$[0]"] |
222 |
cts |
index selector, second element |
✓ |
✓ |
$[1] |
["first","second"] |
["second"] |
["$[1]"] |
223 |
cts |
index selector, out of bound |
✓ |
✓ |
$[2] |
["first","second"] |
[] |
[] |
224 |
cts |
index selector, min exact index |
✓ |
✓ |
$[-9007199254740991] |
["first","second"] |
[] |
[] |
225 |
cts |
index selector, max exact index |
✓ |
✓ |
$[9007199254740991] |
["first","second"] |
[] |
[] |
226 |
cts |
index selector, min exact index - 1 |
✓ |
✗ |
$[-9007199254740992] |
ajp:SEL0001: integer value of index-selector not within IJSON bounds (RFC9535 Sect
2.1) value: -9007199254740992 |
227 |
cts |
index selector, max exact index + 1 |
✓ |
✗ |
$[9007199254740992] |
ajp:SEL0001: integer value of index-selector not within IJSON bounds (RFC9535 Sect
2.1) value: 9007199254740992 |
228 |
cts |
index selector, overflowing index |
✓ |
✗ |
$[231584178474632390847141970017375815706539969331281128078915168015826259279872] |
ajp:SEL0001: integer value of index-selector not within IJSON bounds (RFC9535 Sect
2.1) value: 231584178474632390847141970017375815706539969331281128078915168015826259279872 |
229 |
cts |
index selector, not actually an index, overflowing index leads into general text |
✓ |
✗ |
$[231584178474632390847141970017375815706539969331281128078915168SomeRandomText] |
Parsing error in query line 1 column 66 unexpected character: 'S'. |
230 |
cts |
index selector, negative |
✓ |
✓ |
$[-1] |
["first","second"] |
["second"] |
["$[1]"] |
231 |
cts |
index selector, more negative |
✓ |
✓ |
$[-2] |
["first","second"] |
["first"] |
["$[0]"] |
232 |
cts |
index selector, negative out of bound |
✓ |
✓ |
$[-3] |
["first","second"] |
[] |
[] |
233 |
cts |
index selector, on object |
✓ |
✓ |
$[0] |
{"foo":1} |
[] |
[] |
234 |
cts |
index selector, leading 0 |
✓ |
✗ |
$[01] |
Parsing error in query line 1 column 4 unexpected character: '1'. |
235 |
cts |
index selector, decimal |
✓ |
✗ |
$[1.0] |
Parsing error in query line 1 column 4 unexpected character: '.'. |
236 |
cts |
index selector, plus |
✓ |
✗ |
$[+1] |
Parsing error in query line 1 column 3 unexpected character: '+'. |
237 |
cts |
index selector, minus space |
✓ |
✗ |
$[- 1] |
Parsing error in query line 1 column 4 unexpected character: ' '. |
238 |
cts |
index selector, -0 |
✓ |
✗ |
$[-0] |
Parsing error in query line 1 column 4 unexpected character: '0'. |
239 |
cts |
index selector, leading -0 |
✓ |
✗ |
$[-01] |
Parsing error in query line 1 column 4 unexpected character: '0'. |
240 |
cts |
name selector, double quotes |
✓ |
✓ |
$["a"] |
{"a":"A","b":"B"} |
["A"] |
["$['a']"] |
241 |
cts |
name selector, double quotes, absent data |
✓ |
✓ |
$["c"] |
{"a":"A","b":"B"} |
[] |
[] |
242 |
cts |
name selector, double quotes, array data |
✓ |
✓ |
$["a"] |
["first","second"] |
[] |
[] |
243 |
cts |
name selector, name, double quotes, contains single quote |
✓ |
✓ |
$["a\'"] |
{"b":"B","a\'":"A"} |
["A"] |
["$['a\\'']"] |
244 |
cts |
name selector, name, double quotes, nested |
✓ |
✓ |
$["a"]["b"]["c"] |
{"a":{"b":{"c":"C"}}} |
["C"] |
["$['a']['b']['c']"] |
245 |
cts |
name selector, double quotes, embedded U+0000 |
✓ |
✗ |
$["�"] |
Parsing error in query line 1 column 4 unexpected character: '�'. |
246 |
cts |
name selector, double quotes, embedded U+0001 |
✓ |
✗ |
$["\u0001"] |
Parsing error in query line 1 column 4 unexpected character: '\u0001'. |
247 |
cts |
name selector, double quotes, embedded U+0002 |
✓ |
✗ |
$["\u0002"] |
Parsing error in query line 1 column 4 unexpected character: '\u0002'. |
248 |
cts |
name selector, double quotes, embedded U+0003 |
✓ |
✗ |
$["\u0003"] |
Parsing error in query line 1 column 4 unexpected character: '\u0003'. |
249 |
cts |
name selector, double quotes, embedded U+0004 |
✓ |
✗ |
$["\u0004"] |
Parsing error in query line 1 column 4 unexpected character: '\u0004'. |
250 |
cts |
name selector, double quotes, embedded U+0005 |
✓ |
✗ |
$["\u0005"] |
Parsing error in query line 1 column 4 unexpected character: '\u0005'. |
251 |
cts |
name selector, double quotes, embedded U+0006 |
✓ |
✗ |
$["\u0006"] |
Parsing error in query line 1 column 4 unexpected character: '\u0006'. |
252 |
cts |
name selector, double quotes, embedded U+0007 |
✓ |
✗ |
$["\u0007"] |
Parsing error in query line 1 column 4 unexpected character: '\u0007'. |
253 |
cts |
name selector, double quotes, embedded U+0008 |
✓ |
✗ |
$["\b"] |
Parsing error in query line 1 column 4 unexpected character: '\b'. |
254 |
cts |
name selector, double quotes, embedded U+0009 |
✓ |
✗ |
$["\t"] |
Parsing error in query line 1 column 4 unexpected character: '\t'. |
255 |
cts |
name selector, double quotes, embedded U+000A |
✓ |
✗ |
$["\n"] |
Parsing error in query line 1 column 4 unexpected character: '\n'. |
256 |
cts |
name selector, double quotes, embedded U+000B |
✓ |
✗ |
$["\u000b"] |
Parsing error in query line 1 column 4 unexpected character: '\u000b'. |
257 |
cts |
name selector, double quotes, embedded U+000C |
✓ |
✗ |
$["\f"] |
Parsing error in query line 1 column 4 unexpected character: '\f'. |
258 |
cts |
name selector, double quotes, embedded U+000D |
✓ |
✗ |
$["\r"] |
Parsing error in query line 1 column 4 unexpected character: '\r'. |
259 |
cts |
name selector, double quotes, embedded U+000E |
✓ |
✗ |
$["\u000e"] |
Parsing error in query line 1 column 4 unexpected character: '\u000e'. |
260 |
cts |
name selector, double quotes, embedded U+000F |
✓ |
✗ |
$["\u000f"] |
Parsing error in query line 1 column 4 unexpected character: '\u000f'. |
261 |
cts |
name selector, double quotes, embedded U+0010 |
✓ |
✗ |
$["\u0010"] |
Parsing error in query line 1 column 4 unexpected character: '\u0010'. |
262 |
cts |
name selector, double quotes, embedded U+0011 |
✓ |
✗ |
$["\u0011"] |
Parsing error in query line 1 column 4 unexpected character: '\u0011'. |
263 |
cts |
name selector, double quotes, embedded U+0012 |
✓ |
✗ |
$["\u0012"] |
Parsing error in query line 1 column 4 unexpected character: '\u0012'. |
264 |
cts |
name selector, double quotes, embedded U+0013 |
✓ |
✗ |
$["\u0013"] |
Parsing error in query line 1 column 4 unexpected character: '\u0013'. |
265 |
cts |
name selector, double quotes, embedded U+0014 |
✓ |
✗ |
$["\u0014"] |
Parsing error in query line 1 column 4 unexpected character: '\u0014'. |
266 |
cts |
name selector, double quotes, embedded U+0015 |
✓ |
✗ |
$["\u0015"] |
Parsing error in query line 1 column 4 unexpected character: '\u0015'. |
267 |
cts |
name selector, double quotes, embedded U+0016 |
✓ |
✗ |
$["\u0016"] |
Parsing error in query line 1 column 4 unexpected character: '\u0016'. |
268 |
cts |
name selector, double quotes, embedded U+0017 |
✓ |
✗ |
$["\u0017"] |
Parsing error in query line 1 column 4 unexpected character: '\u0017'. |
269 |
cts |
name selector, double quotes, embedded U+0018 |
✓ |
✗ |
$["\u0018"] |
Parsing error in query line 1 column 4 unexpected character: '\u0018'. |
270 |
cts |
name selector, double quotes, embedded U+0019 |
✓ |
✗ |
$["\u0019"] |
Parsing error in query line 1 column 4 unexpected character: '\u0019'. |
271 |
cts |
name selector, double quotes, embedded U+001A |
✓ |
✗ |
$["\u001a"] |
Parsing error in query line 1 column 4 unexpected character: '\u001a'. |
272 |
cts |
name selector, double quotes, embedded U+001B |
✓ |
✗ |
$["\u001b"] |
Parsing error in query line 1 column 4 unexpected character: '\u001b'. |
273 |
cts |
name selector, double quotes, embedded U+001C |
✓ |
✗ |
$["\u001c"] |
Parsing error in query line 1 column 4 unexpected character: '\u001c'. |
274 |
cts |
name selector, double quotes, embedded U+001D |
✓ |
✗ |
$["\u001d"] |
Parsing error in query line 1 column 4 unexpected character: '\u001d'. |
275 |
cts |
name selector, double quotes, embedded U+001E |
✓ |
✗ |
$["\u001e"] |
Parsing error in query line 1 column 4 unexpected character: '\u001e'. |
276 |
cts |
name selector, double quotes, embedded U+001F |
✓ |
✗ |
$["\u001f"] |
Parsing error in query line 1 column 4 unexpected character: '\u001f'. |
277 |
cts |
name selector, double quotes, embedded U+0020 |
✓ |
✓ |
$[" "] |
{" ":"A"} |
["A"] |
["$[' ']"] |
278 |
cts |
name selector, double quotes, embedded U+007F |
✓ |
✓ |
$[""] |
{"\\u007F":"A"} |
["A"] |
["$['\u007F']"] |
279 |
cts |
name selector, double quotes, supplementary plane character |
✓ |
✓ |
$["\\ud834\\udd1e"] |
{"\\ud834\\udd1e":"A"} |
["A"] |
["$['𝄞']"] |
280 |
cts |
name selector, double quotes, escaped double quote |
✓ |
✓ |
$["\\""] |
{"\\"":"A"} |
["A"] |
["$['\"']"] |
281 |
cts |
name selector, double quotes, escaped reverse solidus |
✓ |
✓ |
$["\\\\"] |
{"\\\\":"A"} |
["A"] |
["$['\\\\']"] |
282 |
cts |
name selector, double quotes, escaped solidus |
✓ |
✓ |
$["\\/"] |
{"\\/":"A"} |
["A"] |
["$['\/']"] |
283 |
cts |
name selector, double quotes, escaped backspace |
✓ |
✓ |
$["\\b"] |
{"\\b":"A"} |
["A"] |
["$['\\b']"] |
284 |
cts |
name selector, double quotes, escaped form feed |
✓ |
✓ |
$["\\f"] |
{"\\f":"A"} |
["A"] |
["$['\\f']"] |
285 |
cts |
name selector, double quotes, escaped line feed |
✓ |
✓ |
$["\\n"] |
{"\\n":"A"} |
["A"] |
["$['\\n']"] |
286 |
cts |
name selector, double quotes, escaped carriage return |
✓ |
✓ |
$["\\r"] |
{"\\r":"A"} |
["A"] |
["$['\\r']"] |
287 |
cts |
name selector, double quotes, escaped tab |
✓ |
✓ |
$["\\t"] |
{"\\t":"A"} |
["A"] |
["$['\\t']"] |
288 |
cts |
name selector, double quotes, escaped ☺, upper case hex |
✓ |
✓ |
$["\\u263A"] |
{"☺":"A"} |
["A"] |
["$['☺']"] |
289 |
cts |
name selector, double quotes, escaped ☺, lower case hex |
✓ |
✓ |
$["\\u263a"] |
{"☺":"A"} |
["A"] |
["$['☺']"] |
290 |
cts |
name selector, double quotes, surrogate pair 𝄞 |
✓ |
✓ |
$["\\uD834\\uDD1E"] |
{"\\ud834\\udd1e":"A"} |
["A"] |
["$['𝄞']"] |
291 |
cts |
name selector, double quotes, surrogate pair 😀 |
✓ |
✓ |
$["\\uD83D\\uDE00"] |
{"\\ud83d\\ude00":"A"} |
["A"] |
["$['😀']"] |
292 |
cts |
name selector, double quotes, before high surrogates |
✓ |
✓ |
$["\\uD7FF\\uD7FF"] |
{"":"A"} |
["A"] |
["$['']"] |
293 |
cts |
name selector, double quotes, after low surrogates |
✓ |
✓ |
$["\\uE000\\uE000"] |
{"":"A"} |
["A"] |
["$['']"] |
294 |
cts |
name selector, double quotes, invalid escaped single quote |
✓ |
✗ |
$["\\\'"] |
Parsing error in query line 1 column 5 unexpected character: '\''. |
295 |
cts |
name selector, double quotes, embedded double quote |
✓ |
✗ |
$["""] |
Parsing error in query line 1 column 5 unexpected character: '"'. |
296 |
cts |
name selector, double quotes, incomplete escape |
✓ |
✗ |
$["\\"] |
Parsing error in query line 1 column 5 unexpected character: ''. |
297 |
cts |
name selector, double quotes, escape at end of line |
✓ |
✗ |
$["\\\n"] |
Parsing error in query line 1 column 5 unexpected character: '\n'. |
298 |
cts |
name selector, double quotes, question mark escape |
✓ |
✗ |
$["\\?"] |
Parsing error in query line 1 column 5 unexpected character: '?'. |
299 |
cts |
name selector, double quotes, bell escape |
✓ |
✗ |
$["\\a"] |
Parsing error in query line 1 column 5 unexpected character: 'a'. |
300 |
cts |
name selector, double quotes, vertical tab escape |
✓ |
✗ |
$["\\v"] |
Parsing error in query line 1 column 5 unexpected character: 'v'. |
301 |
cts |
name selector, double quotes, 0 escape |
✓ |
✗ |
$["\\0"] |
Parsing error in query line 1 column 5 unexpected character: '0'. |
302 |
cts |
name selector, double quotes, x escape |
✓ |
✗ |
$["\\x12"] |
Parsing error in query line 1 column 5 unexpected character: 'x'. |
303 |
cts |
name selector, double quotes, n escape |
✓ |
✗ |
$["\\N{LATIN CAPITAL LETTER A}"] |
Parsing error in query line 1 column 5 unexpected character: 'N'. |
304 |
cts |
name selector, double quotes, unicode escape no hex |
✓ |
✗ |
$["\\u"] |
Parsing error in query line 1 column 6 unexpected character: '"'. |
305 |
cts |
name selector, double quotes, unicode escape too few hex |
✓ |
✗ |
$["\\u123"] |
Parsing error in query line 1 column 9 unexpected character: '"'. |
306 |
cts |
name selector, double quotes, unicode escape upper u |
✓ |
✗ |
$["\\U1234"] |
Parsing error in query line 1 column 5 unexpected character: 'U'. |
307 |
cts |
name selector, double quotes, unicode escape upper u long |
✓ |
✗ |
$["\\U0010FFFF"] |
Parsing error in query line 1 column 5 unexpected character: 'U'. |
308 |
cts |
name selector, double quotes, unicode escape plus |
✓ |
✗ |
$["\\u+1234"] |
Parsing error in query line 1 column 6 unexpected character: '+'. |
309 |
cts |
name selector, double quotes, unicode escape brackets |
✓ |
✗ |
$["\\u{1234}"] |
Parsing error in query line 1 column 6 unexpected character: '{'. |
310 |
cts |
name selector, double quotes, unicode escape brackets long |
✓ |
✗ |
$["\\u{10ffff}"] |
Parsing error in query line 1 column 6 unexpected character: '{'. |
311 |
cts |
name selector, double quotes, single high surrogate |
✓ |
✗ |
$["\\uD800"] |
Parsing error in query line 1 column 10 unexpected character: '"'. |
312 |
cts |
name selector, double quotes, single low surrogate |
✓ |
✗ |
$["\\uDC00"] |
Parsing error in query line 1 column 6 unexpected character: 'D'. |
313 |
cts |
name selector, double quotes, high high surrogate |
✓ |
✗ |
$["\\uD800\\uD800"] |
Parsing error in query line 1 column 12 unexpected character: 'D'. |
314 |
cts |
name selector, double quotes, low low surrogate |
✓ |
✗ |
$["\\uDC00\\uDC00"] |
Parsing error in query line 1 column 6 unexpected character: 'D'. |
315 |
cts |
name selector, double quotes, surrogate non-surrogate |
✓ |
✗ |
$["\\uD800\\u1234"] |
Parsing error in query line 1 column 12 unexpected character: '1'. |
316 |
cts |
name selector, double quotes, non-surrogate surrogate |
✓ |
✗ |
$["\\u1234\\uDC00"] |
Parsing error in query line 1 column 12 unexpected character: 'D'. |
317 |
cts |
name selector, double quotes, surrogate supplementary |
✓ |
✗ |
$["\\uD800\\ud834\\udd1e"] |
Parsing error in query line 1 column 10 unexpected character: '𝄞'. |
318 |
cts |
name selector, double quotes, supplementary surrogate |
✓ |
✗ |
$["\\ud834\\udd1e\\uDC00"] |
Parsing error in query line 1 column 7 unexpected character: 'D'. |
319 |
cts |
name selector, double quotes, surrogate incomplete low |
✓ |
✗ |
$["\\uD800\\uDC0"] |
Parsing error in query line 1 column 15 unexpected character: '"'. |
320 |
cts |
name selector, single quotes |
✓ |
✓ |
$[\'a\'] |
{"a":"A","b":"B"} |
["A"] |
["$['a']"] |
321 |
cts |
name selector, single quotes, absent data |
✓ |
✓ |
$[\'c\'] |
{"a":"A","b":"B"} |
[] |
[] |
322 |
cts |
name selector, single quotes, array data |
✓ |
✓ |
$[\'a\'] |
["first","second"] |
[] |
[] |
323 |
cts |
name selector, single quotes, embedded U+0000 |
✓ |
✗ |
$[\'�\'] |
Parsing error in query line 1 column 4 unexpected character: '�'. |
324 |
cts |
name selector, single quotes, embedded U+0001 |
✓ |
✗ |
$[\'\u0001\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0001'. |
325 |
cts |
name selector, single quotes, embedded U+0002 |
✓ |
✗ |
$[\'\u0002\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0002'. |
326 |
cts |
name selector, single quotes, embedded U+0003 |
✓ |
✗ |
$[\'\u0003\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0003'. |
327 |
cts |
name selector, single quotes, embedded U+0004 |
✓ |
✗ |
$[\'\u0004\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0004'. |
328 |
cts |
name selector, single quotes, embedded U+0005 |
✓ |
✗ |
$[\'\u0005\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0005'. |
329 |
cts |
name selector, single quotes, embedded U+0006 |
✓ |
✗ |
$[\'\u0006\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0006'. |
330 |
cts |
name selector, single quotes, embedded U+0007 |
✓ |
✗ |
$[\'\u0007\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0007'. |
331 |
cts |
name selector, single quotes, embedded U+0008 |
✓ |
✗ |
$[\'\b\'] |
Parsing error in query line 1 column 4 unexpected character: '\b'. |
332 |
cts |
name selector, single quotes, embedded U+0009 |
✓ |
✗ |
$[\'\t\'] |
Parsing error in query line 1 column 4 unexpected character: '\t'. |
333 |
cts |
name selector, single quotes, embedded U+000A |
✓ |
✗ |
$[\'\n\'] |
Parsing error in query line 1 column 4 unexpected character: '\n'. |
334 |
cts |
name selector, single quotes, embedded U+000B |
✓ |
✗ |
$[\'\u000b\'] |
Parsing error in query line 1 column 4 unexpected character: '\u000b'. |
335 |
cts |
name selector, single quotes, embedded U+000C |
✓ |
✗ |
$[\'\f\'] |
Parsing error in query line 1 column 4 unexpected character: '\f'. |
336 |
cts |
name selector, single quotes, embedded U+000D |
✓ |
✗ |
$[\'\r\'] |
Parsing error in query line 1 column 4 unexpected character: '\r'. |
337 |
cts |
name selector, single quotes, embedded U+000E |
✓ |
✗ |
$[\'\u000e\'] |
Parsing error in query line 1 column 4 unexpected character: '\u000e'. |
338 |
cts |
name selector, single quotes, embedded U+000F |
✓ |
✗ |
$[\'\u000f\'] |
Parsing error in query line 1 column 4 unexpected character: '\u000f'. |
339 |
cts |
name selector, single quotes, embedded U+0010 |
✓ |
✗ |
$[\'\u0010\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0010'. |
340 |
cts |
name selector, single quotes, embedded U+0011 |
✓ |
✗ |
$[\'\u0011\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0011'. |
341 |
cts |
name selector, single quotes, embedded U+0012 |
✓ |
✗ |
$[\'\u0012\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0012'. |
342 |
cts |
name selector, single quotes, embedded U+0013 |
✓ |
✗ |
$[\'\u0013\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0013'. |
343 |
cts |
name selector, single quotes, embedded U+0014 |
✓ |
✗ |
$[\'\u0014\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0014'. |
344 |
cts |
name selector, single quotes, embedded U+0015 |
✓ |
✗ |
$[\'\u0015\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0015'. |
345 |
cts |
name selector, single quotes, embedded U+0016 |
✓ |
✗ |
$[\'\u0016\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0016'. |
346 |
cts |
name selector, single quotes, embedded U+0017 |
✓ |
✗ |
$[\'\u0017\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0017'. |
347 |
cts |
name selector, single quotes, embedded U+0018 |
✓ |
✗ |
$[\'\u0018\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0018'. |
348 |
cts |
name selector, single quotes, embedded U+0019 |
✓ |
✗ |
$[\'\u0019\'] |
Parsing error in query line 1 column 4 unexpected character: '\u0019'. |
349 |
cts |
name selector, single quotes, embedded U+001A |
✓ |
✗ |
$[\'\u001a\'] |
Parsing error in query line 1 column 4 unexpected character: '\u001a'. |
350 |
cts |
name selector, single quotes, embedded U+001B |
✓ |
✗ |
$[\'\u001b\'] |
Parsing error in query line 1 column 4 unexpected character: '\u001b'. |
351 |
cts |
name selector, single quotes, embedded U+001C |
✓ |
✗ |
$[\'\u001c\'] |
Parsing error in query line 1 column 4 unexpected character: '\u001c'. |
352 |
cts |
name selector, single quotes, embedded U+001D |
✓ |
✗ |
$[\'\u001d\'] |
Parsing error in query line 1 column 4 unexpected character: '\u001d'. |
353 |
cts |
name selector, single quotes, embedded U+001E |
✓ |
✗ |
$[\'\u001e\'] |
Parsing error in query line 1 column 4 unexpected character: '\u001e'. |
354 |
cts |
name selector, single quotes, embedded U+001F |
✓ |
✗ |
$[\'\u001f\'] |
Parsing error in query line 1 column 4 unexpected character: '\u001f'. |
355 |
cts |
name selector, single quotes, embedded U+0020 |
✓ |
✓ |
$[\' \'] |
{" ":"A"} |
["A"] |
["$[' ']"] |
356 |
cts |
name selector, single quotes, escaped single quote |
✓ |
✓ |
$[\'\\\'\'] |
{"\'":"A"} |
["A"] |
["$['\\'']"] |
357 |
cts |
name selector, single quotes, escaped reverse solidus |
✓ |
✓ |
$[\'\\\\\'] |
{"\\\\":"A"} |
["A"] |
["$['\\\\']"] |
358 |
cts |
name selector, single quotes, escaped solidus |
✓ |
✓ |
$[\'\\/\'] |
{"\\/":"A"} |
["A"] |
["$['\/']"] |
359 |
cts |
name selector, single quotes, escaped backspace |
✓ |
✓ |
$[\'\\b\'] |
{"\\b":"A"} |
["A"] |
["$['\\b']"] |
360 |
cts |
name selector, single quotes, escaped form feed |
✓ |
✓ |
$[\'\\f\'] |
{"\\f":"A"} |
["A"] |
["$['\\f']"] |
361 |
cts |
name selector, single quotes, escaped line feed |
✓ |
✓ |
$[\'\\n\'] |
{"\\n":"A"} |
["A"] |
["$['\\n']"] |
362 |
cts |
name selector, single quotes, escaped carriage return |
✓ |
✓ |
$[\'\\r\'] |
{"\\r":"A"} |
["A"] |
["$['\\r']"] |
363 |
cts |
name selector, single quotes, escaped tab |
✓ |
✓ |
$[\'\\t\'] |
{"\\t":"A"} |
["A"] |
["$['\\t']"] |
364 |
cts |
name selector, single quotes, escaped ☺, upper case hex |
✓ |
✓ |
$[\'\\u263A\'] |
{"☺":"A"} |
["A"] |
["$['☺']"] |
365 |
cts |
name selector, single quotes, escaped ☺, lower case hex |
✓ |
✓ |
$[\'\\u263a\'] |
{"☺":"A"} |
["A"] |
["$['☺']"] |
366 |
cts |
name selector, single quotes, surrogate pair 𝄞 |
✓ |
✓ |
$[\'\\uD834\\uDD1E\'] |
{"\\ud834\\udd1e":"A"} |
["A"] |
["$['𝄞']"] |
367 |
cts |
name selector, single quotes, surrogate pair 😀 |
✓ |
✓ |
$[\'\\uD83D\\uDE00\'] |
{"\\ud83d\\ude00":"A"} |
["A"] |
["$['😀']"] |
368 |
cts |
name selector, single quotes, invalid escaped double quote |
✓ |
✗ |
$[\'\\"\'] |
Parsing error in query line 1 column 5 unexpected character: '"'. |
369 |
cts |
name selector, single quotes, embedded single quote |
✓ |
✗ |
$[\'\'\'] |
Parsing error in query line 1 column 5 unexpected character: '\''. |
370 |
cts |
name selector, single quotes, incomplete escape |
✓ |
✗ |
$[\'\\\'] |
Parsing error in query line 1 column 5 unexpected character: ''. |
371 |
cts |
name selector, double quotes, empty |
✓ |
✓ |
$[""] |
{"":"C","a":"A","b":"B"} |
["C"] |
["$['']"] |
372 |
cts |
name selector, single quotes, empty |
✓ |
✓ |
$[\'\'] |
{"":"C","a":"A","b":"B"} |
["C"] |
["$['']"] |
373 |
cts |
slice selector, slice selector |
✓ |
✓ |
$[1:3] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[1,2] |
["$[1]","$[2]"] |
374 |
cts |
slice selector, slice selector with step |
✓ |
✓ |
$[1:6:2] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[1,3,5] |
["$[1]","$[3]","$[5]"] |
375 |
cts |
slice selector, slice selector with everything omitted, short form |
✓ |
✓ |
$[:] |
[0.0E0,1,2,3] |
[0.0E0,1,2,3] |
["$[0]","$[1]","$[2]","$[3]"] |
376 |
cts |
slice selector, slice selector with everything omitted, long form |
✓ |
✓ |
$[::] |
[0.0E0,1,2,3] |
[0.0E0,1,2,3] |
["$[0]","$[1]","$[2]","$[3]"] |
377 |
cts |
slice selector, slice selector with start omitted |
✓ |
✓ |
$[:2] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[0.0E0,1] |
["$[0]","$[1]"] |
378 |
cts |
slice selector, slice selector with start and end omitted |
✓ |
✓ |
$[::2] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[0.0E0,2,4,6,8] |
["$[0]","$[2]","$[4]","$[6]","$[8]"] |
379 |
cts |
slice selector, negative step with default start and end |
✓ |
✓ |
$[::-1] |
[0.0E0,1,2,3] |
[3,2,1,0.0E0] |
["$[3]","$[2]","$[1]","$[0]"] |
380 |
cts |
slice selector, negative step with default start |
✓ |
✓ |
$[:0:-1] |
[0.0E0,1,2,3] |
[3,2,1] |
["$[3]","$[2]","$[1]"] |
381 |
cts |
slice selector, negative step with default end |
✓ |
✓ |
$[2::-1] |
[0.0E0,1,2,3] |
[2,1,0.0E0] |
["$[2]","$[1]","$[0]"] |
382 |
cts |
slice selector, larger negative step |
✓ |
✓ |
$[::-2] |
[0.0E0,1,2,3] |
[3,1] |
["$[3]","$[1]"] |
383 |
cts |
slice selector, negative range with default step |
✓ |
✓ |
$[-1:-3] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[] |
[] |
384 |
cts |
slice selector, negative range with negative step |
✓ |
✓ |
$[-1:-3:-1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[9,8] |
["$[9]","$[8]"] |
385 |
cts |
slice selector, negative range with larger negative step |
✓ |
✓ |
$[-1:-6:-2] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[9,7,5] |
["$[9]","$[7]","$[5]"] |
386 |
cts |
slice selector, larger negative range with larger negative step |
✓ |
✓ |
$[-1:-7:-2] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[9,7,5] |
["$[9]","$[7]","$[5]"] |
387 |
cts |
slice selector, negative from, positive to |
✓ |
✓ |
$[-5:7] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[5,6] |
["$[5]","$[6]"] |
388 |
cts |
slice selector, negative from |
✓ |
✓ |
$[-2:] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[8,9] |
["$[8]","$[9]"] |
389 |
cts |
slice selector, positive from, negative to |
✓ |
✓ |
$[1:-1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[1,2,3,4,5,6,7,8] |
["$[1]","$[2]","$[3]","$[4]","$[5]","$[6]","$[7]","$[8]"] |
390 |
cts |
slice selector, negative from, positive to, negative step |
✓ |
✓ |
$[-1:1:-1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[9,8,7,6,5,4,3,2] |
["$[9]","$[8]","$[7]","$[6]","$[5]","$[4]","$[3]","$[2]"] |
391 |
cts |
slice selector, positive from, negative to, negative step |
✓ |
✓ |
$[7:-5:-1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[7,6] |
["$[7]","$[6]"] |
392 |
cts |
slice selector, in serial, on nested array |
✓ |
✓ |
$[1:3][1:2] |
[["a","b","c"],["d","e","f"],["g","h","i"]] |
["e","h"] |
["$[1][1]","$[2][1]"] |
393 |
cts |
slice selector, in serial, on flat array |
✓ |
✓ |
$[1:3][::] |
[0.0E0,1,2,3,4,5] |
[] |
[] |
394 |
cts |
slice selector, negative from, negative to, positive step |
✓ |
✓ |
$[-5:-2] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[5,6,7] |
["$[5]","$[6]","$[7]"] |
395 |
cts |
slice selector, too many colons |
✓ |
✗ |
$[1:2:3:4] |
Parsing error in query line 1 column 8 unexpected character: ':'. |
396 |
cts |
slice selector, non-integer array index |
✓ |
✗ |
$[1:2:a] |
Parsing error in query line 1 column 7 unexpected character: 'a'. |
397 |
cts |
slice selector, zero step |
✓ |
✓ |
$[1:2:0] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[] |
[] |
398 |
cts |
slice selector, empty range |
✓ |
✓ |
$[2:2] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[] |
[] |
399 |
cts |
slice selector, slice selector with everything omitted with empty array |
✓ |
✓ |
$[:] |
[] |
[] |
[] |
400 |
cts |
slice selector, negative step with empty array |
✓ |
✓ |
$[::-1] |
[] |
[] |
[] |
401 |
cts |
slice selector, maximal range with positive step |
✓ |
✓ |
$[0:10] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
["$[0]","$[1]","$[2]","$[3]","$[4]","$[5]","$[6]","$[7]","$[8]","$[9]"] |
402 |
cts |
slice selector, maximal range with negative step |
✓ |
✓ |
$[9:0:-1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[9,8,7,6,5,4,3,2,1] |
["$[9]","$[8]","$[7]","$[6]","$[5]","$[4]","$[3]","$[2]","$[1]"] |
403 |
cts |
slice selector, excessively large to value |
✓ |
✓ |
$[2:113667776004] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[2,3,4,5,6,7,8,9] |
["$[2]","$[3]","$[4]","$[5]","$[6]","$[7]","$[8]","$[9]"] |
404 |
cts |
slice selector, excessively small from value |
✓ |
✓ |
$[-113667776004:1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[0.0E0] |
["$[0]"] |
405 |
cts |
slice selector, excessively large from value with negative step |
✓ |
✓ |
$[113667776004:0:-1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[9,8,7,6,5,4,3,2,1] |
["$[9]","$[8]","$[7]","$[6]","$[5]","$[4]","$[3]","$[2]","$[1]"] |
406 |
cts |
slice selector, excessively small to value with negative step |
✓ |
✓ |
$[3:-113667776004:-1] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[3,2,1,0.0E0] |
["$[3]","$[2]","$[1]","$[0]"] |
407 |
cts |
slice selector, excessively large step |
✓ |
✓ |
$[1:10:113667776004] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[1] |
["$[1]"] |
408 |
cts |
slice selector, excessively small step |
✓ |
✓ |
$[-1:-10:-113667776004] |
[0.0E0,1,2,3,4,5,6,7,8,9] |
[9] |
["$[9]"] |
409 |
cts |
slice selector, start, min exact |
✓ |
✓ |
$[-9007199254740991::] |
[] |
[] |
[] |
410 |
cts |
slice selector, start, max exact |
✓ |
✓ |
$[9007199254740991::] |
[] |
[] |
[] |
411 |
cts |
slice selector, start, min exact - 1 |
✓ |
✗ |
$[-9007199254740992::] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: start value: -9007199254740992 |
412 |
cts |
slice selector, start, max exact + 1 |
✓ |
✗ |
$[9007199254740992::] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: start value: 9007199254740992 |
413 |
cts |
slice selector, end, min exact |
✓ |
✓ |
$[:-9007199254740991:] |
[] |
[] |
[] |
414 |
cts |
slice selector, end, max exact |
✓ |
✓ |
$[:9007199254740991:] |
[] |
[] |
[] |
415 |
cts |
slice selector, end, min exact - 1 |
✓ |
✗ |
$[:-9007199254740992:] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: end value: -9007199254740992 |
416 |
cts |
slice selector, end, max exact + 1 |
✓ |
✗ |
$[:9007199254740992:] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: end value: 9007199254740992 |
417 |
cts |
slice selector, step, min exact |
✓ |
✓ |
$[::-9007199254740991] |
[] |
[] |
[] |
418 |
cts |
slice selector, step, max exact |
✓ |
✓ |
$[::9007199254740991] |
[] |
[] |
[] |
419 |
cts |
slice selector, step, min exact - 1 |
✓ |
✗ |
$[::-9007199254740992] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: step value: -9007199254740992 |
420 |
cts |
slice selector, step, max exact + 1 |
✓ |
✗ |
$[::9007199254740992] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: step value: 9007199254740992 |
421 |
cts |
slice selector, overflowing to value |
✓ |
✗ |
$[2:231584178474632390847141970017375815706539969331281128078915168015826259279872] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: end value: 231584178474632390847141970017375815706539969331281128078915168015826259279872 |
422 |
cts |
slice selector, underflowing from value |
✓ |
✗ |
$[-231584178474632390847141970017375815706539969331281128078915168015826259279872:1] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: start value: -231584178474632390847141970017375815706539969331281128078915168015826259279872 |
423 |
cts |
slice selector, overflowing from value with negative step |
✓ |
✗ |
$[231584178474632390847141970017375815706539969331281128078915168015826259279872:0:-1] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: start value: 231584178474632390847141970017375815706539969331281128078915168015826259279872 |
424 |
cts |
slice selector, underflowing to value with negative step |
✓ |
✗ |
$[3:-231584178474632390847141970017375815706539969331281128078915168015826259279872:-1] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: end value: -231584178474632390847141970017375815706539969331281128078915168015826259279872 |
425 |
cts |
slice selector, overflowing step |
✓ |
✗ |
$[1:10:231584178474632390847141970017375815706539969331281128078915168015826259279872] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: step value: 231584178474632390847141970017375815706539969331281128078915168015826259279872 |
426 |
cts |
slice selector, underflowing step |
✓ |
✗ |
$[-1:-10:-231584178474632390847141970017375815706539969331281128078915168015826259279872] |
ajp:SEL0002: integer value of slice parameter not within IJSON bounds (RFC9535 Sect
2.1) slice parameter: step value: -231584178474632390847141970017375815706539969331281128078915168015826259279872 |
427 |
cts |
slice selector, start, leading 0 |
✓ |
✗ |
$[01::] |
Parsing error in query line 1 column 4 unexpected character: '1'. |
428 |
cts |
slice selector, start, decimal |
✓ |
✗ |
$[1.0::] |
Parsing error in query line 1 column 4 unexpected character: '.'. |
429 |
cts |
slice selector, start, plus |
✓ |
✗ |
$[+1::] |
Parsing error in query line 1 column 3 unexpected character: '+'. |
430 |
cts |
slice selector, start, minus space |
✓ |
✗ |
$[- 1::] |
Parsing error in query line 1 column 4 unexpected character: ' '. |
431 |
cts |
slice selector, start, -0 |
✓ |
✗ |
$[-0::] |
Parsing error in query line 1 column 4 unexpected character: '0'. |
432 |
cts |
slice selector, start, leading -0 |
✓ |
✗ |
$[-01::] |
Parsing error in query line 1 column 4 unexpected character: '0'. |
433 |
cts |
slice selector, end, leading 0 |
✓ |
✗ |
$[:01:] |
Parsing error in query line 1 column 5 unexpected character: '1'. |
434 |
cts |
slice selector, end, decimal |
✓ |
✗ |
$[:1.0:] |
Parsing error in query line 1 column 5 unexpected character: '.'. |
435 |
cts |
slice selector, end, plus |
✓ |
✗ |
$[:+1:] |
Parsing error in query line 1 column 4 unexpected character: '+'. |
436 |
cts |
slice selector, end, minus space |
✓ |
✗ |
$[:- 1:] |
Parsing error in query line 1 column 5 unexpected character: ' '. |
437 |
cts |
slice selector, end, -0 |
✓ |
✗ |
$[:-0:] |
Parsing error in query line 1 column 5 unexpected character: '0'. |
438 |
cts |
slice selector, end, leading -0 |
✓ |
✗ |
$[:-01:] |
Parsing error in query line 1 column 5 unexpected character: '0'. |
439 |
cts |
slice selector, step, leading 0 |
✓ |
✗ |
$[::01] |
Parsing error in query line 1 column 6 unexpected character: '1'. |
440 |
cts |
slice selector, step, decimal |
✓ |
✗ |
$[::1.0] |
Parsing error in query line 1 column 6 unexpected character: '.'. |
441 |
cts |
slice selector, step, plus |
✓ |
✗ |
$[::+1] |
Parsing error in query line 1 column 5 unexpected character: '+'. |
442 |
cts |
slice selector, step, minus space |
✓ |
✗ |
$[::- 1] |
Parsing error in query line 1 column 6 unexpected character: ' '. |
443 |
cts |
slice selector, step, -0 |
✓ |
✗ |
$[::-0] |
Parsing error in query line 1 column 6 unexpected character: '0'. |
444 |
cts |
slice selector, step, leading -0 |
✓ |
✗ |
$[::-01] |
Parsing error in query line 1 column 6 unexpected character: '0'. |
445 |
cts |
functions, count, count function |
✓ |
✓ |
$[?count(@..*)>2] |
[{"a":[1,2,3]},{"a":[1],"d":"f"},{"a":1,"d":"f"}] |
[{"a":[1,2,3]},{"a":[1],"d":"f"}] |
["$[0]","$[1]"] |
446 |
cts |
functions, count, single-node arg |
✓ |
✓ |
$[?count(@.a)>1] |
[{"a":[1,2,3]},{"a":[1],"d":"f"},{"a":1,"d":"f"}] |
[] |
[] |
447 |
cts |
functions, count, multiple-selector arg |
✓ |
✓ |
$[?count(@[\'a\',\'d\'])>1] |
[{"a":[1,2,3]},{"a":[1],"d":"f"},{"a":1,"d":"f"}] |
[{"a":[1],"d":"f"},{"a":1,"d":"f"}] |
["$[1]","$[2]"] |
448 |
cts |
functions, count, non-query arg, number |
✓ |
✗ |
$[?count(1)>2] |
ajp:FCT0006: argument 1 of function count() must come from a query but instead is
a literal value. |
449 |
cts |
functions, count, non-query arg, string |
✓ |
✗ |
$[?count(\'string\')>2] |
ajp:FCT0006: argument 1 of function count() must come from a query but instead is
a literal value. |
450 |
cts |
functions, count, non-query arg, true |
✓ |
✗ |
$[?count(true)>2] |
ajp:FCT0006: argument 1 of function count() must come from a query but instead is
a literal value. |
451 |
cts |
functions, count, non-query arg, false |
✓ |
✗ |
$[?count(false)>2] |
ajp:FCT0006: argument 1 of function count() must come from a query but instead is
a literal value. |
452 |
cts |
functions, count, non-query arg, null |
✓ |
✗ |
$[?count(null)>2] |
ajp:FCT0006: argument 1 of function count() must come from a query but instead is
a literal value. |
453 |
cts |
functions, count, result must be compared |
✓ |
✗ |
$[?count(@..*)] |
ajp:FCT0003: function extension of ValueType not allowed for test expression: count(). |
454 |
cts |
functions, count, no params |
✓ |
✗ |
$[?count()==1] |
ajp:FCT0005: bad number of arguments for: count() was : 0 but must be: 1 |
455 |
cts |
functions, count, too many params |
✓ |
✗ |
$[?count(@.a,@.b)==1] |
ajp:FCT0002: function: count() takes 1 arguments but here has at least 2 arguments
in its invocation. |
456 |
cts |
functions, length, string data |
✓ |
✓ |
$[?length(@.a)>=2] |
[{"a":"ab"},{"a":"d"}] |
[{"a":"ab"}] |
["$[0]"] |
457 |
cts |
functions, length, string data, unicode |
✓ |
✓ |
$[?length(@)==2] |
["☺","☺☺","☺☺☺","ж","жж","жжж","磨","阿美","形声字"] |
["☺☺","жж","阿美"] |
["$[1]","$[4]","$[7]"] |
458 |
cts |
functions, length, array data |
✓ |
✓ |
$[?length(@.a)>=2] |
[{"a":[1,2,3]},{"a":[1]}] |
[{"a":[1,2,3]}] |
["$[0]"] |
459 |
cts |
functions, length, missing data |
✓ |
✓ |
$[?length(@.a)>=2] |
[{"d":"f"}] |
[] |
[] |
460 |
cts |
functions, length, number arg |
✓ |
✓ |
$[?length(1)>=2] |
[{"d":"f"}] |
[] |
[] |
461 |
cts |
functions, length, true arg |
✓ |
✓ |
$[?length(true)>=2] |
[{"d":"f"}] |
[] |
[] |
462 |
cts |
functions, length, false arg |
✓ |
✓ |
$[?length(false)>=2] |
[{"d":"f"}] |
[] |
[] |
463 |
cts |
functions, length, null arg |
✓ |
✓ |
$[?length(null)>=2] |
[{"d":"f"}] |
[] |
[] |
464 |
cts |
functions, length, result must be compared |
✓ |
✗ |
$[?length(@.a)] |
ajp:FCT0003: function extension of ValueType not allowed for test expression: length(). |
465 |
cts |
functions, length, no params |
✓ |
✗ |
$[?length()==1] |
ajp:FCT0005: bad number of arguments for: length() was : 0 but must be: 1 |
466 |
cts |
functions, length, too many params |
✓ |
✗ |
$[?length(@.a,@.b)==1] |
ajp:FCT0002: function: length() takes 1 arguments but here has at least 2 arguments
in its invocation. |
467 |
cts |
functions, length, non-singular query arg |
✓ |
✗ |
$[?length(@.*)<3] |
ajp:FCT0008: argument 1 of function length() must be a singular query. |
468 |
cts |
functions, length, arg is a function expression |
✓ |
✓ |
$.values[?length(@.a)==length(value($..c))] |
{"c":"cd","values":[{"a":"ab"},{"a":"d"}]} |
[{"a":"ab"}] |
["$['values'][0]"] |
469 |
cts |
functions, length, arg is special nothing |
✓ |
✓ |
$[?length(value(@.a))>0] |
[{"a":"ab"},{"c":"d"},{"a":null}] |
[{"a":"ab"}] |
["$[0]"] |
470 |
cts |
functions, length, non-singular query arg, multiple index selectors |
✓ |
✗ |
$[?length(@[1, 2])<3] |
ajp:FCT0008: argument 1 of function length() must be a singular query. |
471 |
cts |
functions, length, non-singular query arg, multiple name selectors |
✓ |
✗ |
$[?length(@[\'a\', \'b\'])<3] |
ajp:FCT0008: argument 1 of function length() must be a singular query. |
472 |
cts |
functions, match, found match |
✓ |
✓ |
$[?match(@.a, \'a.*\')] |
[{"a":"ab"}] |
[{"a":"ab"}] |
["$[0]"] |
473 |
cts |
functions, match, double quotes |
✓ |
✓ |
$[?match(@.a, "a.*")] |
[{"a":"ab"}] |
[{"a":"ab"}] |
["$[0]"] |
474 |
cts |
functions, match, regex from the document |
✓ |
✓ |
$.values[?match(@, $.regex)] |
{"regex":"b.?b","values":["abc","bcd","bab","bba","bbab","b",true,[],{}]} |
["bab"] |
["$['values'][2]"] |
475 |
cts |
functions, match, don't select match |
✓ |
✓ |
$[?!match(@.a, \'a.*\')] |
[{"a":"ab"}] |
[] |
[] |
476 |
cts |
functions, match, not a match |
✓ |
✓ |
$[?match(@.a, \'a.*\')] |
[{"a":"bc"}] |
[] |
[] |
477 |
cts |
functions, match, select non-match |
✓ |
✓ |
$[?!match(@.a, \'a.*\')] |
[{"a":"bc"}] |
[{"a":"bc"}] |
["$[0]"] |
478 |
cts |
functions, match, non-string first arg |
✓ |
✓ |
$[?match(1, \'a.*\')] |
[{"a":"bc"}] |
[] |
[] |
479 |
cts |
functions, match, non-string second arg |
✓ |
✓ |
$[?match(@.a, 1)] |
[{"a":"bc"}] |
[] |
[] |
480 |
cts |
functions, match, filter, match function, unicode char class, uppercase |
✓ |
✓ |
$[?match(@, \'\\\\p{Lu}\')] |
["ж","Ж","1","жЖ",true,[],{}] |
["Ж"] |
["$[1]"] |
481 |
cts |
functions, match, filter, match function, unicode char class negated, uppercase |
✓ |
✓ |
$[?match(@, \'\\\\P{Lu}\')] |
["ж","Ж","1",true,[],{}] |
["ж","1"] |
["$[0]","$[2]"] |
482 |
cts |
functions, match, filter, match function, unicode, surrogate pair |
✓ |
✓ |
$[?match(@, \'a.b\')] |
["a\\ud800\\udd01b","ab","1",true,[],{}] |
["a\\ud800\\udd01b"] |
["$[0]"] |
483 |
cts |
functions, match, dot matcher on \u2028 |
✓ |
✓ |
$[?match(@, \'.\')] |
["
","\\r","\\n",true,[],{}] |
["
"] |
["$[0]"] |
484 |
cts |
functions, match, dot matcher on \u2029 |
✓ |
✓ |
$[?match(@, \'.\')] |
["
","\\r","\\n",true,[],{}] |
["
"] |
["$[0]"] |
485 |
cts |
functions, match, result cannot be compared |
✓ |
✗ |
$[?match(@.a, \'a.*\')==true] |
ajp:FCT0004: the function match() cannot be used in a comparison expression; it is
of type LogicalType but it must be ValueType. |
486 |
cts |
functions, match, too few params |
✓ |
✗ |
$[?match(@.a)==1] |
ajp:FCT0005: bad number of arguments for: match() was : 1 but must be: 2 |
487 |
cts |
functions, match, too many params |
✓ |
✗ |
$[?match(@.a,@.b,@.c)==1] |
ajp:FCT0002: function: match() takes 2 arguments but here has at least 3 arguments
in its invocation. |
488 |
cts |
functions, match, arg is a function expression |
✓ |
✓ |
$.values[?match(@.a, value($..[\'regex\']))] |
{"regex":"a.*","values":[{"a":"ab"},{"a":"ba"}]} |
[{"a":"ab"}] |
["$['values'][0]"] |
489 |
cts |
functions, match, dot in character class |
✓ |
✓ |
$[?match(@, \'a[.b]c\')] |
["abc","a.c","axc"] |
["abc","a.c"] |
["$[0]","$[1]"] |
490 |
cts |
functions, match, escaped dot |
✓ |
✓ |
$[?match(@, \'a\\\\.c\')] |
["abc","a.c","axc"] |
["a.c"] |
["$[1]"] |
491 |
cts |
functions, match, escaped backslash before dot |
✓ |
✓ |
$[?match(@, \'a\\\\\\\\.c\')] |
["abc","a.c","axc","a\\\\
c"] |
["a\\\\
c"] |
["$[3]"] |
492 |
cts |
functions, match, escaped left square bracket |
✓ |
✓ |
$[?match(@, \'a\\\\[.c\')] |
["abc","a.c","a[
c"] |
["a[
c"] |
["$[2]"] |
493 |
cts |
functions, match, escaped right square bracket |
✓ |
✓ |
$[?match(@, \'a[\\\\].]c\')] |
["abc","a.c","a
c","a]c"] |
["a.c","a]c"] |
["$[1]","$[3]"] |
494 |
cts |
functions, match, explicit caret |
✓ |
✓ |
$[?match(@, \'^ab.*\')] |
["abc","axc","ab","xab"] |
["abc","ab"] |
["$[0]","$[2]"] |
495 |
cts |
functions, match, explicit dollar |
✓ |
✓ |
$[?match(@, \'.*bc$\')] |
["abc","axc","ab","abcx"] |
["abc"] |
["$[0]"] |
496 |
cts |
functions, search, at the end |
✓ |
✓ |
$[?search(@.a, \'a.*\')] |
[{"a":"the end is ab"}] |
[{"a":"the end is ab"}] |
["$[0]"] |
497 |
cts |
functions, search, double quotes |
✓ |
✓ |
$[?search(@.a, "a.*")] |
[{"a":"the end is ab"}] |
[{"a":"the end is ab"}] |
["$[0]"] |
498 |
cts |
functions, search, at the start |
✓ |
✓ |
$[?search(@.a, \'a.*\')] |
[{"a":"ab is at the start"}] |
[{"a":"ab is at the start"}] |
["$[0]"] |
499 |
cts |
functions, search, in the middle |
✓ |
✓ |
$[?search(@.a, \'a.*\')] |
[{"a":"contains two matches"}] |
[{"a":"contains two matches"}] |
["$[0]"] |
500 |
cts |
functions, search, regex from the document |
✓ |
✓ |
$.values[?search(@, $.regex)] |
{"regex":"b.?b","values":["abc","bcd","bab","bba","bbab","b",true,[],{}]} |
["bab","bba","bbab"] |
["$['values'][2]","$['values'][3]","$['values'][4]"] |
501 |
cts |
functions, search, don't select match |
✓ |
✓ |
$[?!search(@.a, \'a.*\')] |
[{"a":"contains two matches"}] |
[] |
[] |
502 |
cts |
functions, search, not a match |
✓ |
✓ |
$[?search(@.a, \'a.*\')] |
[{"a":"bc"}] |
[] |
[] |
503 |
cts |
functions, search, select non-match |
✓ |
✓ |
$[?!search(@.a, \'a.*\')] |
[{"a":"bc"}] |
[{"a":"bc"}] |
["$[0]"] |
504 |
cts |
functions, search, non-string first arg |
✓ |
✓ |
$[?search(1, \'a.*\')] |
[{"a":"bc"}] |
[] |
[] |
505 |
cts |
functions, search, non-string second arg |
✓ |
✓ |
$[?search(@.a, 1)] |
[{"a":"bc"}] |
[] |
[] |
506 |
cts |
functions, search, filter, search function, unicode char class, uppercase |
✓ |
✓ |
$[?search(@, \'\\\\p{Lu}\')] |
["ж","Ж","1","жЖ",true,[],{}] |
["Ж","жЖ"] |
["$[1]","$[3]"] |
507 |
cts |
functions, search, filter, search function, unicode char class negated, uppercase |
✓ |
✓ |
$[?search(@, \'\\\\P{Lu}\')] |
["ж","Ж","1",true,[],{}] |
["ж","1"] |
["$[0]","$[2]"] |
508 |
cts |
functions, search, filter, search function, unicode, surrogate pair |
✓ |
✓ |
$[?search(@, \'a.b\')] |
["a\\ud800\\udd01bc","abc","1",true,[],{}] |
["a\\ud800\\udd01bc"] |
["$[0]"] |
509 |
cts |
functions, search, dot matcher on \u2028 |
✓ |
✓ |
$[?search(@, \'.\')] |
["
","\\r
\\n","\\r","\\n",true,[],{}] |
["
","\\r
\\n"] |
["$[0]","$[1]"] |
510 |
cts |
functions, search, dot matcher on \u2029 |
✓ |
✓ |
$[?search(@, \'.\')] |
["
","\\r
\\n","\\r","\\n",true,[],{}] |
["
","\\r
\\n"] |
["$[0]","$[1]"] |
511 |
cts |
functions, search, result cannot be compared |
✓ |
✗ |
$[?search(@.a, \'a.*\')==true] |
ajp:FCT0004: the function search() cannot be used in a comparison expression; it is
of type LogicalType but it must be ValueType. |
512 |
cts |
functions, search, too few params |
✓ |
✗ |
$[?search(@.a)] |
ajp:FCT0005: bad number of arguments for: search() was : 1 but must be: 2 |
513 |
cts |
functions, search, too many params |
✓ |
✗ |
$[?search(@.a,@.b,@.c)] |
ajp:FCT0002: function: search() takes 2 arguments but here has at least 3 arguments
in its invocation. |
514 |
cts |
functions, search, arg is a function expression |
✓ |
✓ |
$.values[?search(@, value($..[\'regex\']))] |
{"regex":"b.?b","values":["abc","bcd","bab","bba","bbab","b",true,[],{}]} |
["bab","bba","bbab"] |
["$['values'][2]","$['values'][3]","$['values'][4]"] |
515 |
cts |
functions, search, dot in character class |
✓ |
✓ |
$[?search(@, \'a[.b]c\')] |
["x abc y","x a.c y","x axc y"] |
["x abc y","x a.c y"] |
["$[0]","$[1]"] |
516 |
cts |
functions, search, escaped dot |
✓ |
✓ |
$[?search(@, \'a\\\\.c\')] |
["x abc y","x a.c y","x axc y"] |
["x a.c y"] |
["$[1]"] |
517 |
cts |
functions, search, escaped backslash before dot |
✓ |
✓ |
$[?search(@, \'a\\\\\\\\.c\')] |
["x abc y","x a.c y","x axc y","x a\\\\
c y"] |
["x a\\\\
c y"] |
["$[3]"] |
518 |
cts |
functions, search, escaped left square bracket |
✓ |
✓ |
$[?search(@, \'a\\\\[.c\')] |
["x abc y","x a.c y","x a[
c y"] |
["x a[
c y"] |
["$[2]"] |
519 |
cts |
functions, search, escaped right square bracket |
✓ |
✓ |
$[?search(@, \'a[\\\\].]c\')] |
["x abc y","x a.c y","x a
c y","x a]c y"] |
["x a.c y","x a]c y"] |
["$[1]","$[3]"] |
520 |
cts |
functions, value, single-value nodelist |
✓ |
✓ |
$[?value(@.*)==4] |
[[4],{"foo":4},[5],{"foo":5},4] |
[[4],{"foo":4}] |
["$[0]","$[1]"] |
521 |
cts |
functions, value, multi-value nodelist |
✓ |
✓ |
$[?value(@.*)==4] |
[[4,4],{"bar":4,"foo":4}] |
[] |
[] |
522 |
cts |
functions, value, too few params |
✓ |
✗ |
$[?value()==4] |
ajp:FCT0005: bad number of arguments for: value() was : 0 but must be: 1 |
523 |
cts |
functions, value, too many params |
✓ |
✗ |
$[?value(@.a,@.b)==4] |
ajp:FCT0002: function: value() takes 1 arguments but here has at least 2 arguments
in its invocation. |
524 |
cts |
functions, value, result must be compared |
✓ |
✗ |
$[?value(@.a)] |
ajp:FCT0003: function extension of ValueType not allowed for test expression: value(). |
525 |
cts |
whitespace, filter, space between question mark and expression |
✓ |
✓ |
$[? @.a] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
526 |
cts |
whitespace, filter, newline between question mark and expression |
✓ |
✓ |
$[?\n@.a] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
527 |
cts |
whitespace, filter, tab between question mark and expression |
✓ |
✓ |
$[?\t@.a] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
528 |
cts |
whitespace, filter, return between question mark and expression |
✓ |
✓ |
$[?\r@.a] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
529 |
cts |
whitespace, filter, space between question mark and parenthesized expression |
✓ |
✓ |
$[? (@.a)] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
530 |
cts |
whitespace, filter, newline between question mark and parenthesized expression |
✓ |
✓ |
$[?\n(@.a)] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
531 |
cts |
whitespace, filter, tab between question mark and parenthesized expression |
✓ |
✓ |
$[?\t(@.a)] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
532 |
cts |
whitespace, filter, return between question mark and parenthesized expression |
✓ |
✓ |
$[?\r(@.a)] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
533 |
cts |
whitespace, filter, space between parenthesized expression and bracket |
✓ |
✓ |
$[?(@.a) ] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
534 |
cts |
whitespace, filter, newline between parenthesized expression and bracket |
✓ |
✓ |
$[?(@.a)\n] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
535 |
cts |
whitespace, filter, tab between parenthesized expression and bracket |
✓ |
✓ |
$[?(@.a)\t] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
536 |
cts |
whitespace, filter, return between parenthesized expression and bracket |
✓ |
✓ |
$[?(@.a)\r] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
537 |
cts |
whitespace, filter, space between bracket and question mark |
✓ |
✓ |
$[ ?@.a] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
538 |
cts |
whitespace, filter, newline between bracket and question mark |
✓ |
✓ |
$[\n?@.a] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
539 |
cts |
whitespace, filter, tab between bracket and question mark |
✓ |
✓ |
$[\t?@.a] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
540 |
cts |
whitespace, filter, return between bracket and question mark |
✓ |
✓ |
$[\r?@.a] |
[{"a":"b","d":"e"},{"b":"c","d":"f"}] |
[{"a":"b","d":"e"}] |
["$[0]"] |
541 |
cts |
whitespace, functions, space between function name and parenthesis |
✓ |
✗ |
$[?count (@.*)==1] |
Parsing error in query line 1 column 9 unexpected character: ' '. |
542 |
cts |
whitespace, functions, newline between function name and parenthesis |
✓ |
✗ |
$[?count\n(@.*)==1] |
Parsing error in query line 1 column 9 unexpected character: '\n'. |
543 |
cts |
whitespace, functions, tab between function name and parenthesis |
✓ |
✗ |
$[?count\t(@.*)==1] |
Parsing error in query line 1 column 9 unexpected character: '\t'. |
544 |
cts |
whitespace, functions, return between function name and parenthesis |
✓ |
✗ |
$[?count\r(@.*)==1] |
Parsing error in query line 1 column 9 unexpected character: '\r'. |
545 |
cts |
whitespace, functions, space between parenthesis and arg |
✓ |
✓ |
$[?count( @.*)==1] |
[{"a":1},{"b":2},{"a":2,"b":1}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
546 |
cts |
whitespace, functions, newline between parenthesis and arg |
✓ |
✓ |
$[?count(\n@.*)==1] |
[{"a":1},{"b":2},{"a":2,"b":1}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
547 |
cts |
whitespace, functions, tab between parenthesis and arg |
✓ |
✓ |
$[?count(\t@.*)==1] |
[{"a":1},{"b":2},{"a":2,"b":1}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
548 |
cts |
whitespace, functions, return between parenthesis and arg |
✓ |
✓ |
$[?count(\r@.*)==1] |
[{"a":1},{"b":2},{"a":2,"b":1}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
549 |
cts |
whitespace, functions, space between arg and comma |
✓ |
✓ |
$[?search(@ ,\'[a-z]+\')] |
["foo","123"] |
["foo"] |
["$[0]"] |
550 |
cts |
whitespace, functions, newline between arg and comma |
✓ |
✓ |
$[?search(@\n,\'[a-z]+\')] |
["foo","123"] |
["foo"] |
["$[0]"] |
551 |
cts |
whitespace, functions, tab between arg and comma |
✓ |
✓ |
$[?search(@\t,\'[a-z]+\')] |
["foo","123"] |
["foo"] |
["$[0]"] |
552 |
cts |
whitespace, functions, return between arg and comma |
✓ |
✓ |
$[?search(@\r,\'[a-z]+\')] |
["foo","123"] |
["foo"] |
["$[0]"] |
553 |
cts |
whitespace, functions, space between comma and arg |
✓ |
✓ |
$[?search(@, \'[a-z]+\')] |
["foo","123"] |
["foo"] |
["$[0]"] |
554 |
cts |
whitespace, functions, newline between comma and arg |
✓ |
✓ |
$[?search(@,\n\'[a-z]+\')] |
["foo","123"] |
["foo"] |
["$[0]"] |
555 |
cts |
whitespace, functions, tab between comma and arg |
✓ |
✓ |
$[?search(@,\t\'[a-z]+\')] |
["foo","123"] |
["foo"] |
["$[0]"] |
556 |
cts |
whitespace, functions, return between comma and arg |
✓ |
✓ |
$[?search(@,\r\'[a-z]+\')] |
["foo","123"] |
["foo"] |
["$[0]"] |
557 |
cts |
whitespace, functions, space between arg and parenthesis |
✓ |
✓ |
$[?count(@.* )==1] |
[{"a":1},{"b":2},{"a":2,"b":1}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
558 |
cts |
whitespace, functions, newline between arg and parenthesis |
✓ |
✓ |
$[?count(@.*\n)==1] |
[{"a":1},{"b":2},{"a":2,"b":1}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
559 |
cts |
whitespace, functions, tab between arg and parenthesis |
✓ |
✓ |
$[?count(@.*\t)==1] |
[{"a":1},{"b":2},{"a":2,"b":1}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
560 |
cts |
whitespace, functions, return between arg and parenthesis |
✓ |
✓ |
$[?count(@.*\r)==1] |
[{"a":1},{"b":2},{"a":2,"b":1}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
561 |
cts |
whitespace, functions, spaces in a relative singular selector |
✓ |
✓ |
$[?length(@ .a .b) == 3] |
[{"a":{"b":"foo"}},{}] |
[{"a":{"b":"foo"}}] |
["$[0]"] |
562 |
cts |
whitespace, functions, newlines in a relative singular selector |
✓ |
✓ |
$[?length(@\n.a\n.b) == 3] |
[{"a":{"b":"foo"}},{}] |
[{"a":{"b":"foo"}}] |
["$[0]"] |
563 |
cts |
whitespace, functions, tabs in a relative singular selector |
✓ |
✓ |
$[?length(@\t.a\t.b) == 3] |
[{"a":{"b":"foo"}},{}] |
[{"a":{"b":"foo"}}] |
["$[0]"] |
564 |
cts |
whitespace, functions, returns in a relative singular selector |
✓ |
✓ |
$[?length(@\r.a\r.b) == 3] |
[{"a":{"b":"foo"}},{}] |
[{"a":{"b":"foo"}}] |
["$[0]"] |
565 |
cts |
whitespace, functions, spaces in an absolute singular selector |
✓ |
✓ |
$..[?length(@)==length($ [0] .a)] |
[{"a":"foo"},{}] |
["foo"] |
["$[0]['a']"] |
566 |
cts |
whitespace, functions, newlines in an absolute singular selector |
✓ |
✓ |
$..[?length(@)==length($\n[0]\n.a)] |
[{"a":"foo"},{}] |
["foo"] |
["$[0]['a']"] |
567 |
cts |
whitespace, functions, tabs in an absolute singular selector |
✓ |
✓ |
$..[?length(@)==length($\t[0]\t.a)] |
[{"a":"foo"},{}] |
["foo"] |
["$[0]['a']"] |
568 |
cts |
whitespace, functions, returns in an absolute singular selector |
✓ |
✓ |
$..[?length(@)==length($\r[0]\r.a)] |
[{"a":"foo"},{}] |
["foo"] |
["$[0]['a']"] |
569 |
cts |
whitespace, operators, space before || |
✓ |
✓ |
$[?@.a ||@.b] |
[{"a":1},{"b":2},{"c":3}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
570 |
cts |
whitespace, operators, newline before || |
✓ |
✓ |
$[?@.a\n||@.b] |
[{"a":1},{"b":2},{"c":3}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
571 |
cts |
whitespace, operators, tab before || |
✓ |
✓ |
$[?@.a\t||@.b] |
[{"a":1},{"b":2},{"c":3}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
572 |
cts |
whitespace, operators, return before || |
✓ |
✓ |
$[?@.a\r||@.b] |
[{"a":1},{"b":2},{"c":3}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
573 |
cts |
whitespace, operators, space after || |
✓ |
✓ |
$[?@.a|| @.b] |
[{"a":1},{"b":2},{"c":3}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
574 |
cts |
whitespace, operators, newline after || |
✓ |
✓ |
$[?@.a||\n@.b] |
[{"a":1},{"b":2},{"c":3}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
575 |
cts |
whitespace, operators, tab after || |
✓ |
✓ |
$[?@.a||\t@.b] |
[{"a":1},{"b":2},{"c":3}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
576 |
cts |
whitespace, operators, return after || |
✓ |
✓ |
$[?@.a||\r@.b] |
[{"a":1},{"b":2},{"c":3}] |
[{"a":1},{"b":2}] |
["$[0]","$[1]"] |
577 |
cts |
whitespace, operators, space before && |
✓ |
✓ |
$[?@.a &&@.b] |
[{"a":1},{"b":2},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[2]"] |
578 |
cts |
whitespace, operators, newline before && |
✓ |
✓ |
$[?@.a\n&&@.b] |
[{"a":1},{"b":2},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[2]"] |
579 |
cts |
whitespace, operators, tab before && |
✓ |
✓ |
$[?@.a\t&&@.b] |
[{"a":1},{"b":2},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[2]"] |
580 |
cts |
whitespace, operators, return before && |
✓ |
✓ |
$[?@.a\r&&@.b] |
[{"a":1},{"b":2},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[2]"] |
581 |
cts |
whitespace, operators, space after && |
✓ |
✓ |
$[?@.a&& @.b] |
[{"a":1},{"b":2},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[2]"] |
582 |
cts |
whitespace, operators, newline after && |
✓ |
✓ |
$[?@.a&& @.b] |
[{"a":1},{"b":2},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[2]"] |
583 |
cts |
whitespace, operators, tab after && |
✓ |
✓ |
$[?@.a&& @.b] |
[{"a":1},{"b":2},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[2]"] |
584 |
cts |
whitespace, operators, return after && |
✓ |
✓ |
$[?@.a&& @.b] |
[{"a":1},{"b":2},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[2]"] |
585 |
cts |
whitespace, operators, space before == |
✓ |
✓ |
$[?@.a ==@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":1}] |
["$[0]"] |
586 |
cts |
whitespace, operators, newline before == |
✓ |
✓ |
$[?@.a\n==@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":1}] |
["$[0]"] |
587 |
cts |
whitespace, operators, tab before == |
✓ |
✓ |
$[?@.a\t==@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":1}] |
["$[0]"] |
588 |
cts |
whitespace, operators, return before == |
✓ |
✓ |
$[?@.a\r==@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":1}] |
["$[0]"] |
589 |
cts |
whitespace, operators, space after == |
✓ |
✓ |
$[?@.a== @.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":1}] |
["$[0]"] |
590 |
cts |
whitespace, operators, newline after == |
✓ |
✓ |
$[?@.a==\n@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":1}] |
["$[0]"] |
591 |
cts |
whitespace, operators, tab after == |
✓ |
✓ |
$[?@.a==\t@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":1}] |
["$[0]"] |
592 |
cts |
whitespace, operators, return after == |
✓ |
✓ |
$[?@.a==\r@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":1}] |
["$[0]"] |
593 |
cts |
whitespace, operators, space before != |
✓ |
✓ |
$[?@.a !=@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
594 |
cts |
whitespace, operators, newline before != |
✓ |
✓ |
$[?@.a\n!=@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
595 |
cts |
whitespace, operators, tab before != |
✓ |
✓ |
$[?@.a\t!=@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
596 |
cts |
whitespace, operators, return before != |
✓ |
✓ |
$[?@.a\r!=@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
597 |
cts |
whitespace, operators, space after != |
✓ |
✓ |
$[?@.a!= @.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
598 |
cts |
whitespace, operators, newline after != |
✓ |
✓ |
$[?@.a!=\n@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
599 |
cts |
whitespace, operators, tab after != |
✓ |
✓ |
$[?@.a!=\t@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
600 |
cts |
whitespace, operators, return after != |
✓ |
✓ |
$[?@.a!=\r@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
601 |
cts |
whitespace, operators, space before < |
✓ |
✓ |
$[?@.a <@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
602 |
cts |
whitespace, operators, newline before < |
✓ |
✓ |
$[?@.a\n<@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
603 |
cts |
whitespace, operators, tab before < |
✓ |
✓ |
$[?@.a\t<@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
604 |
cts |
whitespace, operators, return before < |
✓ |
✓ |
$[?@.a\r<@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
605 |
cts |
whitespace, operators, space after < |
✓ |
✓ |
$[?@.a< @.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
606 |
cts |
whitespace, operators, newline after < |
✓ |
✓ |
$[?@.a<\n@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
607 |
cts |
whitespace, operators, tab after < |
✓ |
✓ |
$[?@.a<\t@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
608 |
cts |
whitespace, operators, return after < |
✓ |
✓ |
$[?@.a<\r@.b] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
609 |
cts |
whitespace, operators, space before > |
✓ |
✓ |
$[?@.b >@.a] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
610 |
cts |
whitespace, operators, newline before > |
✓ |
✓ |
$[?@.b\n>@.a] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
611 |
cts |
whitespace, operators, tab before > |
✓ |
✓ |
$[?@.b\t>@.a] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
612 |
cts |
whitespace, operators, return before > |
✓ |
✓ |
$[?@.b\r>@.a] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
613 |
cts |
whitespace, operators, space after > |
✓ |
✓ |
$[?@.b> @.a] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
614 |
cts |
whitespace, operators, newline after > |
✓ |
✓ |
$[?@.b>\n@.a] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
615 |
cts |
whitespace, operators, tab after > |
✓ |
✓ |
$[?@.b>\t@.a] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
616 |
cts |
whitespace, operators, return after > |
✓ |
✓ |
$[?@.b>\r@.a] |
[{"a":1,"b":1},{"a":1,"b":2}] |
[{"a":1,"b":2}] |
["$[1]"] |
617 |
cts |
whitespace, operators, space before <= |
✓ |
✓ |
$[?@.a <=@.b] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
618 |
cts |
whitespace, operators, newline before <= |
✓ |
✓ |
$[?@.a\n<=@.b] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
619 |
cts |
whitespace, operators, tab before <= |
✓ |
✓ |
$[?@.a\t<=@.b] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
620 |
cts |
whitespace, operators, return before <= |
✓ |
✓ |
$[?@.a\r<=@.b] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
621 |
cts |
whitespace, operators, space after <= |
✓ |
✓ |
$[?@.a<= @.b] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
622 |
cts |
whitespace, operators, newline after <= |
✓ |
✓ |
$[?@.a<=\n@.b] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
623 |
cts |
whitespace, operators, tab after <= |
✓ |
✓ |
$[?@.a<=\t@.b] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
624 |
cts |
whitespace, operators, return after <= |
✓ |
✓ |
$[?@.a<=\r@.b] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
625 |
cts |
whitespace, operators, space before >= |
✓ |
✓ |
$[?@.b >=@.a] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
626 |
cts |
whitespace, operators, newline before >= |
✓ |
✓ |
$[?@.b\n>=@.a] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
627 |
cts |
whitespace, operators, tab before >= |
✓ |
✓ |
$[?@.b\t>=@.a] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
628 |
cts |
whitespace, operators, return before >= |
✓ |
✓ |
$[?@.b\r>=@.a] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
629 |
cts |
whitespace, operators, space after >= |
✓ |
✓ |
$[?@.b>= @.a] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
630 |
cts |
whitespace, operators, newline after >= |
✓ |
✓ |
$[?@.b>=\n@.a] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
631 |
cts |
whitespace, operators, tab after >= |
✓ |
✓ |
$[?@.b>=\t@.a] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
632 |
cts |
whitespace, operators, return after >= |
✓ |
✓ |
$[?@.b>=\r@.a] |
[{"a":1,"b":1},{"a":1,"b":2},{"a":2,"b":1}] |
[{"a":1,"b":1},{"a":1,"b":2}] |
["$[0]","$[1]"] |
633 |
cts |
whitespace, operators, space between logical not and test expression |
✓ |
✓ |
$[?! @.a] |
[{"a":"a","d":"e"},{"d":"f"},{"a":"d","d":"f"}] |
[{"d":"f"}] |
["$[1]"] |
634 |
cts |
whitespace, operators, newline between logical not and test expression |
✓ |
✓ |
$[?!\n@.a] |
[{"a":"a","d":"e"},{"d":"f"},{"a":"d","d":"f"}] |
[{"d":"f"}] |
["$[1]"] |
635 |
cts |
whitespace, operators, tab between logical not and test expression |
✓ |
✓ |
$[?!\t@.a] |
[{"a":"a","d":"e"},{"d":"f"},{"a":"d","d":"f"}] |
[{"d":"f"}] |
["$[1]"] |
636 |
cts |
whitespace, operators, return between logical not and test expression |
✓ |
✓ |
$[?!\r@.a] |
[{"a":"a","d":"e"},{"d":"f"},{"a":"d","d":"f"}] |
[{"d":"f"}] |
["$[1]"] |
637 |
cts |
whitespace, operators, space between logical not and parenthesized expression |
✓ |
✓ |
$[?! (@.a==\'b\')] |
[{"a":"a","d":"e"},{"a":"b","d":"f"},{"a":"d","d":"f"}] |
[{"a":"a","d":"e"},{"a":"d","d":"f"}] |
["$[0]","$[2]"] |
638 |
cts |
whitespace, operators, newline between logical not and parenthesized expression |
✓ |
✓ |
$[?!\n(@.a==\'b\')] |
[{"a":"a","d":"e"},{"a":"b","d":"f"},{"a":"d","d":"f"}] |
[{"a":"a","d":"e"},{"a":"d","d":"f"}] |
["$[0]","$[2]"] |
639 |
cts |
whitespace, operators, tab between logical not and parenthesized expression |
✓ |
✓ |
$[?!\t(@.a==\'b\')] |
[{"a":"a","d":"e"},{"a":"b","d":"f"},{"a":"d","d":"f"}] |
[{"a":"a","d":"e"},{"a":"d","d":"f"}] |
["$[0]","$[2]"] |
640 |
cts |
whitespace, operators, return between logical not and parenthesized expression |
✓ |
✓ |
$[?!\r(@.a==\'b\')] |
[{"a":"a","d":"e"},{"a":"b","d":"f"},{"a":"d","d":"f"}] |
[{"a":"a","d":"e"},{"a":"d","d":"f"}] |
["$[0]","$[2]"] |
641 |
cts |
whitespace, selectors, space between root and bracket |
✓ |
✓ |
$ [\'a\'] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
642 |
cts |
whitespace, selectors, newline between root and bracket |
✓ |
✓ |
$\n[\'a\'] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
643 |
cts |
whitespace, selectors, tab between root and bracket |
✓ |
✓ |
$\t[\'a\'] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
644 |
cts |
whitespace, selectors, return between root and bracket |
✓ |
✓ |
$\r[\'a\'] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
645 |
cts |
whitespace, selectors, space between bracket and bracket |
✓ |
✓ |
$[\'a\'] [\'b\'] |
{"a":{"b":"ab"}} |
["ab"] |
["$['a']['b']"] |
646 |
cts |
whitespace, selectors, newline between bracket and bracket |
✓ |
✓ |
$[\'a\'] \n[\'b\'] |
{"a":{"b":"ab"}} |
["ab"] |
["$['a']['b']"] |
647 |
cts |
whitespace, selectors, tab between bracket and bracket |
✓ |
✓ |
$[\'a\'] \t[\'b\'] |
{"a":{"b":"ab"}} |
["ab"] |
["$['a']['b']"] |
648 |
cts |
whitespace, selectors, return between bracket and bracket |
✓ |
✓ |
$[\'a\'] \r[\'b\'] |
{"a":{"b":"ab"}} |
["ab"] |
["$['a']['b']"] |
649 |
cts |
whitespace, selectors, space between root and dot |
✓ |
✓ |
$ .a |
{"a":"ab"} |
["ab"] |
["$['a']"] |
650 |
cts |
whitespace, selectors, newline between root and dot |
✓ |
✓ |
$\n.a |
{"a":"ab"} |
["ab"] |
["$['a']"] |
651 |
cts |
whitespace, selectors, tab between root and dot |
✓ |
✓ |
$\t.a |
{"a":"ab"} |
["ab"] |
["$['a']"] |
652 |
cts |
whitespace, selectors, return between root and dot |
✓ |
✓ |
$\r.a |
{"a":"ab"} |
["ab"] |
["$['a']"] |
653 |
cts |
whitespace, selectors, space between dot and name |
✓ |
✗ |
$. a |
Parsing error in query line 1 column 3 unexpected character: ' '. |
654 |
cts |
whitespace, selectors, newline between dot and name |
✓ |
✗ |
$.\na |
Parsing error in query line 1 column 3 unexpected character: '\n'. |
655 |
cts |
whitespace, selectors, tab between dot and name |
✓ |
✗ |
$.\ta |
Parsing error in query line 1 column 3 unexpected character: '\t'. |
656 |
cts |
whitespace, selectors, return between dot and name |
✓ |
✗ |
$.\ra |
Parsing error in query line 1 column 3 unexpected character: '\r'. |
657 |
cts |
whitespace, selectors, space between recursive descent and name |
✓ |
✗ |
$.. a |
Parsing error in query line 1 column 4 unexpected character: ' '. |
658 |
cts |
whitespace, selectors, newline between recursive descent and name |
✓ |
✗ |
$..\na |
Parsing error in query line 1 column 4 unexpected character: '\n'. |
659 |
cts |
whitespace, selectors, tab between recursive descent and name |
✓ |
✗ |
$..\ta |
Parsing error in query line 1 column 4 unexpected character: '\t'. |
660 |
cts |
whitespace, selectors, return between recursive descent and name |
✓ |
✗ |
$..\ra |
Parsing error in query line 1 column 4 unexpected character: '\r'. |
661 |
cts |
whitespace, selectors, space between bracket and selector |
✓ |
✓ |
$[ \'a\'] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
662 |
cts |
whitespace, selectors, newline between bracket and selector |
✓ |
✓ |
$[\n\'a\'] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
663 |
cts |
whitespace, selectors, tab between bracket and selector |
✓ |
✓ |
$[\t\'a\'] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
664 |
cts |
whitespace, selectors, return between bracket and selector |
✓ |
✓ |
$[\r\'a\'] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
665 |
cts |
whitespace, selectors, space between selector and bracket |
✓ |
✓ |
$[\'a\' ] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
666 |
cts |
whitespace, selectors, newline between selector and bracket |
✓ |
✓ |
$[\'a\'\n] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
667 |
cts |
whitespace, selectors, tab between selector and bracket |
✓ |
✓ |
$[\'a\'\t] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
668 |
cts |
whitespace, selectors, return between selector and bracket |
✓ |
✓ |
$[\'a\'\r] |
{"a":"ab"} |
["ab"] |
["$['a']"] |
669 |
cts |
whitespace, selectors, space between selector and comma |
✓ |
✓ |
$[\'a\' ,\'b\'] |
{"a":"ab","b":"bc"} |
["ab","bc"] |
["$['a']","$['b']"] |
670 |
cts |
whitespace, selectors, newline between selector and comma |
✓ |
✓ |
$[\'a\'\n,\'b\'] |
{"a":"ab","b":"bc"} |
["ab","bc"] |
["$['a']","$['b']"] |
671 |
cts |
whitespace, selectors, tab between selector and comma |
✓ |
✓ |
$[\'a\'\t,\'b\'] |
{"a":"ab","b":"bc"} |
["ab","bc"] |
["$['a']","$['b']"] |
672 |
cts |
whitespace, selectors, return between selector and comma |
✓ |
✓ |
$[\'a\'\r,\'b\'] |
{"a":"ab","b":"bc"} |
["ab","bc"] |
["$['a']","$['b']"] |
673 |
cts |
whitespace, selectors, space between comma and selector |
✓ |
✓ |
$[\'a\', \'b\'] |
{"a":"ab","b":"bc"} |
["ab","bc"] |
["$['a']","$['b']"] |
674 |
cts |
whitespace, selectors, newline between comma and selector |
✓ |
✓ |
$[\'a\',\n\'b\'] |
{"a":"ab","b":"bc"} |
["ab","bc"] |
["$['a']","$['b']"] |
675 |
cts |
whitespace, selectors, tab between comma and selector |
✓ |
✓ |
$[\'a\',\t\'b\'] |
{"a":"ab","b":"bc"} |
["ab","bc"] |
["$['a']","$['b']"] |
676 |
cts |
whitespace, selectors, return between comma and selector |
✓ |
✓ |
$[\'a\',\r\'b\'] |
{"a":"ab","b":"bc"} |
["ab","bc"] |
["$['a']","$['b']"] |
677 |
cts |
whitespace, slice, space between start and colon |
✓ |
✓ |
$[1 :5:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
678 |
cts |
whitespace, slice, newline between start and colon |
✓ |
✓ |
$[1\n:5:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
679 |
cts |
whitespace, slice, tab between start and colon |
✓ |
✓ |
$[1\t:5:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
680 |
cts |
whitespace, slice, return between start and colon |
✓ |
✓ |
$[1\r:5:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
681 |
cts |
whitespace, slice, space between colon and end |
✓ |
✓ |
$[1: 5:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
682 |
cts |
whitespace, slice, newline between colon and end |
✓ |
✓ |
$[1:\n5:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
683 |
cts |
whitespace, slice, tab between colon and end |
✓ |
✓ |
$[1:\t5:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
684 |
cts |
whitespace, slice, return between colon and end |
✓ |
✓ |
$[1:\r5:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
685 |
cts |
whitespace, slice, space between end and colon |
✓ |
✓ |
$[1:5 :2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
686 |
cts |
whitespace, slice, newline between end and colon |
✓ |
✓ |
$[1:5\n:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
687 |
cts |
whitespace, slice, tab between end and colon |
✓ |
✓ |
$[1:5\t:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
688 |
cts |
whitespace, slice, return between end and colon |
✓ |
✓ |
$[1:5\r:2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
689 |
cts |
whitespace, slice, space between colon and step |
✓ |
✓ |
$[1:5: 2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
690 |
cts |
whitespace, slice, newline between colon and step |
✓ |
✓ |
$[1:5:\n2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
691 |
cts |
whitespace, slice, tab between colon and step |
✓ |
✓ |
$[1:5:\t2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
692 |
cts |
whitespace, slice, return between colon and step |
✓ |
✓ |
$[1:5:\r2] |
[1,2,3,4,5,6] |
[2,4] |
["$[1]","$[3]"] |
1 |
ajp |
multiple slice selectors, positive and negative steps |
✓ |
✓ |
$[2:5:1,-2:-4:-1,1:2:1,4:1:-1,1:3:-1] |
[0.0E0,1,2,3,4,5,6] |
[2,3,4,5,4,1,4,3,2] |
["$[2]","$[3]","$[4]","$[5]","$[4]","$[1]","$[4]","$[3]","$[2]"] |
2 |
ajp |
filter, match, special function |
✓ |
✓ |
$[?@.*[?match(@, \'[A-J]\')]] |
[[{"a":"A"}],[{"b":"B"}],[{"c":"C"}],[{"x":"X"}],[{"y":"Y"}],[{"z":"Z"}]] |
[[{"a":"A"}],[{"b":"B"}],[{"c":"C"}]] |
["$[0]","$[1]","$[2]"] |
3 |
ajp |
filter, unknown function |
✓ |
✗ |
$[?not_a_function(@, \'[A-J]\')] |
ajp:FCT0001: unknown function extension: not_a_function(). |
4 |
ajp |
filter, function, value argument, non-singular query |
✓ |
✗ |
$[?length($.*)==4] |
ajp:FCT0008: argument 1 of function length() must be a singular query. |
5 |
ajp |
filter, function, nodes formal parameter, value argument |
✓ |
✗ |
$[?count(length($.*))==4] |
ajp:FCT0010: argument 1 of function count() requires type NodesType but called function
length() is type ValueType |
6 |
ajp |
filter, function, value formal parameter, logical-expr argument, non-singular-query |
✓ |
✗ |
$[?length($.a || $.b)==4] |
ajp:FCT0009: argument 1 of function length() requires a singular query argument |
7 |
ajp |
filter, function, boolean argument, string true |
✓ |
✗ |
$[?boolstr(\'true\')==\'true\'] |
ajp:FCT0007: argument 1 of function boolstr must be type LogicalType. |
8 |
ajp |
filter, function, boolean argument, string false |
✓ |
✗ |
$[?boolstr(\'false\')==\'false\'] |
ajp:FCT0007: argument 1 of function boolstr must be type LogicalType. |
9 |
ajp |
filter, function, boolean argument, boolean false |
✓ |
✓ |
$[?boolstr(false)==\'false\'] |
[[{"a":"A"}],[{"b":"B"}]] |
[[{"a":"A"}],[{"b":"B"}]] |
["$[0]","$[1]"] |
10 |
ajp |
filter, function, boolean argument, boolean true |
✓ |
✓ |
$[?boolstr(true)==\'true\'] |
[[{"a":"A"}],[{"b":"B"}]] |
[[{"a":"A"}],[{"b":"B"}]] |
["$[0]","$[1]"] |
11 |
ajp |
filter, function, boolean argument, boolean true, string mismatch |
✓ |
✓ |
$[?boolstr(true)==\'false\'] |
[[{"a":"A"}],[{"b":"B"}]] |
[] |
[] |
12 |
ajp |
filter, function, nodes argument, nodes type |
✓ |
✓ |
$[?value(identity($.a))==$.a] |
[[{"a":"A"}],[{"b":"B"}]] |
[[{"a":"A"}],[{"b":"B"}]] |
["$[0]","$[1]"] |
13 |
ajp |
a random example |
✓ |
✓ |
$..[\'a\', \'e\', 0] |
{"a":1,"b":"hello","c":true,"d":null,"e":[42,23]} |
[1,[42,23],42] |
["$['a']","$['e']","$['e'][0]"] |
14 |
ajp |
another random example |
✓ |
✓ |
$..[\'a\', \'e\', 0]..[1] |
{"a":1,"b":"hello","c":true,"d":null,"e":[42,23]} |
[23] |
["$['e'][1]"] |
15 |
ajp |
yet another random example |
✓ |
✓ |
$.e[1] |
{"a":1,"b":"hello","c":true,"d":null,"e":[42,23]} |
[23] |
["$['e'][1]"] |
16 |
ajp |
query argument that is literal null, trivial query |
✓ |
✓ |
$ |
null |
[null] |
["$"] |
17 |
ajp |
query argument that is literal null, one segment |
✓ |
✓ |
$[0] |
null |
[] |
[] |
18 |
ajp |
key_search() test with object root |
✓ |
✓ |
$[?key_search(@, \'CH\')] |
{"CH_id":123,"CH_name":"Channel 1","status":"active"} |
[123,"Channel 1"] |
["$['CH_id']","$['CH_name']"] |
19 |
ajp |
key_match() test with object root |
✓ |
✓ |
$[?key_match(@, \'CH.*\')] |
{"CH_id":123,"CH_name":"Channel 1","status":"active"} |
[123,"Channel 1"] |
["$['CH_id']","$['CH_name']"] |
20 |
ajp |
key_search() test with object root, no-match |
✓ |
✓ |
$[?key_search(@, \'CHX.*\')] |
{"CH_id":123,"CH_name":"Channel 1","status":"active"} |
[] |
[] |
21 |
ajp |
key_match() test with object root, no-match |
✓ |
✓ |
$[?key_match(@, \'CHX\')] |
{"CH_id":123,"CH_name":"Channel 1","status":"active"} |
[] |
[] |
22 |
ajp |
key_search() test with array of objects |
✓ |
✓ |
$[?key_search(@.*, \'CH\')] |
[{"CH_name":"Channel 1"},{"CH_id":123},{"status":"active"}] |
[{"CH_name":"Channel 1"},{"CH_id":123}] |
["$[0]","$[1]"] |
23 |
ajp |
key_match() test with array of objects |
✓ |
✓ |
$[?key_match(@.*, \'CH.*\')] |
[{"CH_name":"Channel 1"},{"CH_id":123},{"status":"active"}] |
[{"CH_name":"Channel 1"},{"CH_id":123}] |
["$[0]","$[1]"] |