Script expression
Setup
Selector: $[(@.length-1)]
["first", "second", "third", "forth", "fifth"]
Results
Consensus
Not supported
Other responses
Bash (JSONPath.sh)
[]
Cpp (jsoncons)
[
"fifth"
]
Elixir (jaxon)
[]
[
"fifth"
]
JavaScript (Goessner)
²
[
"fifth"
]
JavaScript (brunerd)
[]
JavaScript (jsonpath)
[
"fifth"
]
JavaScript (jsonpath-plus)
[
"fifth"
]
PHP (softcreatr-jsonpath)
[
"fifth"
]
Python (jsonpath)
²
[
"fifth"
]
Ruby (jsonpath)
[
"fifth"
]
dotNET (JsonPathLib)
[]
dotNET (Manatee.Json)
[
"fifth"
]
Errors
Clojure (json-path)
¹
java.lang.NumberFormatException For input string: "("
Erlang (ejsonpath)
init terminating in do_boot ({not_implemented,bin_op,-})
Crash dump is being written to: /dev/null...done
{"init terminating in do_boot",{not_implemented,bin_op,'-'}}
path: invalid character at 2
strconv.Atoi: parsing "(@.length-1)": invalid syntax
PHP (Goessner)
²
Error: 'Undefined constant "length"'
Perl (JSON-Path)
Assertion ("[(" is not an operator) failed!
at build/lib/perl5/Carp/Assert.pm line 282, <STDIN> line 1.
Carp::Assert::assert(...) called at build/lib/perl5/JSON/Path/Evaluator.pm line 215
JSON::Path::Evaluator::_evaluate(...) called at build/lib/perl5/JSON/Path/Evaluator.pm line 120
JSON::Path::Evaluator::evaluate(...) called at build/lib/perl5/JSON/Path/Evaluator.pm line 93
JSON::Path::Evaluator::evaluate_jsonpath(...) called at build/lib/perl5/JSON/Path.pm line 103
JSON::Path::values(...) called at main.pl line 11
Rust (jsonpath_plus)
Error Parsing JSON Path:
$[(@.length-1)]
panic occurred
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.