JSONPath
jackson-jq
JSONPath | jackson-jq | |
---|---|---|
1 | 2 | |
927 | 270 | |
1.5% | - | |
6.7 | 5.3 | |
9 days ago | 6 days ago | |
JavaScript | Java | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
JSONPath
-
jq 1.7 Released
Another great alternative is JSONPath[1] which unfortunately not as widely supported and known despite being brilliant!
It's inspired by XPath so it's very familiar instead of a complete new DSL. The killer feature imo is the recursive key lookup so you can write `people..address` and it'll find all "address" keys that descend from "people" anywhere in the JSON. It's by far my favorite parsing language for JSON and I wrote an introduction blog on how to use it in JSON dataset parsing [2] :)
1 - https://github.com/JSONPath-Plus/JSONPath
2 - https://scrapfly.io/blog/parse-json-jsonpath-python/
jackson-jq
-
jq 1.7 Released
So just picking Java https://github.com/eiiches/jackson-jq
> jackson-jq aims to be a compatible jq implementation. However, not every feature is available; some are intentionally omitted because thay are not relevant as a Java library; some may be incomplete, have bugs or are yet to be implemented.
Where JMESPath has fully compliant 1st party implementations in Python, Go, Lua, JS, PHP, Ruby, and Rust and fully compliant 3rd party implementations in C++, Java, .NET, Elixer, and TS.
Having a spec and a test suite means that a all valid JMESPath programs will work and work the same anywhere you use it.
What are some alternatives?
gojq - Pure Go implementation of jq
libnbd
jet - CLI to transform between JSON, EDN, YAML and Transit using Clojure
jq-mode - Emacs major mode for editing jq queries.
fq - jq for binary formats - tool, language and decoders for working with binary and text formats
nbdkit
visidata - A terminal spreadsheet multitool for discovering and arranging data
java-jq - Lightweight Java wrapper around JQ, a flexible JSON processor available for multiple platforms
yamlpath - YAML/JSON/EYAML/Compatible get/set/merge/validate/scan/convert/diff processors using powerful, intuitive, command-line friendly syntax.
Newman - Newman is a command-line collection runner for Postman
rsl - reserialise: lossy but versatile conversion between data serialisation formats