I am considering making a JSON parsing and generating command line tool. Started with looking around a bit. Below is a list of existing JSON command line tools. Numbers are [GitHub stars] at the time of writing this post. (… contributed by …) means that this post was updated with the item.
- jq  – filter, extract, modify and output JSON or text using DSL
- jid  – “You can drill down JSON interactively by using filtering queries like jq.” (item contributed by /u/Tacticus)
- gron  – convert JSON or JSON lines (from file/stdin/url) to text (path=value) which can be processed with grep/sed/diff; the tool also supports converting back to JSON after such processing
- jo  – generate JSON based on command line arguments and stdin; can read data from files and place it as base64 encoded values
- JSON.sh  – written in shell/gawk; “traverses the JSON objects and prints out the path to the current object (as a JSON array) and then the object, without whitespace”
- jsawk  – focused primarily on filtering and transforming a list (or an object). Update 2019-09-30: as @joeytwiddle suggested in comment, the project appears to be unmaintained and doesn’t work with recent Node.js versions. Latest commit and latest closed issue are from 2015.
- json (by trentm)  – “massaging JSON on your Unix command line”; JS-like syntax for extracting values; in-place file editing
- rq  – awk/sed-like tool for structured data; supports several formats, including JSON
- TickTick  – use JSON syntax directly in bash; “This is just a fun hack”
- jshon  – very CLI-ish way to extract, manipulate and output the data
- jl  – “a tiny functional language for querying and manipulating JSON”; visually reminds Haskell
- jsonpp  – JSON pretty printer (item contributed by /u/ferbass)
- fx  – conveniently run your JS code to manipulate JSON.
- RecordStream  – create, manipulate and output records; supports JSON; Perl-based so grep expressions for example are in Perl.
- JSON.awk  – JSON.sh fork in awk; after fork the projects added different features.
- jp  – “command line interface to JMESPath” (link contributed by Evgeny Zislis)
- json-command  – conveniently manipulate JSON using JS.
- jsonv.sh  – convert JSON to CSV; specify paths in JSON to
- jgrep (aka “JSON-grep”)  – “Command line tool and API for parsing JSON documents” in Ruby (item contributed by /u/tophlammiepie)
- jsed  – manipulate and extract data; somewhat similar to jsawk in mindset
- jayin  “Piping with js at terminal”. Added on 2019-09-30 following comment from @joeytwiddle.
- jsongrep  (by dsc) – extract data at given path using shell globs and output one per line
- jsongrep  (by terrycojones) – easily extract data at given path
I’ve added related post in which I argue that jq functionality belongs to a shell.
If you feel that some project is missing from the list, please let me know in comments below.