Recursive descent
Setup
Selector: $..
[{"a": {"b": "c"}}, [0, 1]]
Results
Consensus
Not supported
Other responses
Bash (JSONPath.sh)
[
"c",
0,
1
]
Clojure (json-path)
¹
[
0,
1,
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
Cpp (jsoncons)
[
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
Elixir (jaxon)
[
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
]
]
Erlang (ejsonpath)
[
"c",
0,
1,
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
[
"c",
0,
1,
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
[
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
JavaScript (Goessner)
²
[
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
JavaScript (jsonpath-plus)
[
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
Kotlin (com.nfeld.jsonpathkt)
¹
[
[
0,
1
],
{
"a": {
"b": "c"
}
}
]
PHP (Goessner)
²
[
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
PHP (softcreatr-jsonpath)
[
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
Perl (JSON-Path)
[]
Python (jsonpath)
²
[
"c",
0,
1,
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
Python (python-jsonpath)
[
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
Raku (JSON-Path)
[
"c",
0,
1,
[
0,
1
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
Ruby (jsonpath)
[
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
]
]
Rust (jsonpath_plus)
[
"c",
0,
1,
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
dotNET (JsonCons.JsonPath)
[
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
dotNET (JsonPathLib)
[
[
0,
1
],
[
{
"a": {
"b": "c"
}
},
[
0,
1
]
],
{
"a": {
"b": "c"
}
},
{
"b": "c"
}
]
Errors
path: unexpected end of path at 3
expression don't support in filter
Java (com.github.jsurfer)
java.lang.IllegalStateException: deep-scan shouldn't be the last operator.
Footnotes
- ¹ This implementation returns a single value where only one match is possible (instead of an array of a single value).
- ² This implementation returns a specific not found value if no match exists.
- ³ This implementation returns a specific not found value if a query that would regularly return a single match results in no match.