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 adding the entry.
- 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
- jj  – “JJ is a command line utility that provides a fast and simple way to retrieve or update values from JSON documents. It’s powered by GJSON and SJSON under the hood.” (item contributed by /u/RomanaOswin, 2021-03-28) (also noticed it was mentioned earlier in comments by Harald Hanche-Olsen , sorry did not see that)
- rq  – awk/sed-like tool for structured data; supports several formats, including JSON
- dasel  – “Dasel (short for data-selector) allows you to query and modify data structures using selector strings. Comparable to jq / yq, but supports JSON, YAML, TOML, XML and CSV with zero runtime dependencies.” (item contributed by /u/AndydeCleyre, 2021-03-27)
- TickTick  – use JSON syntax directly in bash; “This is just a fun hack”
- jtc  “cli tool to extract, manipulate and transform source JSON” (item contributed by Dmitry in the comments, 2019, added 2021-03-28)
- 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
- faq . “faq is a tool intended to be a more flexible jq, supporting additional formats. The additional formats are converted into JSON and processed with libjq”. Supports: BSON, Bencode, JSON, TOML, XML, YAML. Added on 2020-10-11.
- 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)
- jello . “Filter JSON and JSON Lines data with Python syntax”. Added on 2020-10-11.
- jsed  – manipulate and extract data; somewhat similar to jsawk in mindset
- nvim-jqx  “easily browse and preview json files in neovim” using Quickfix buffer (item contributed by /u/evergreengt, 2021-03-28)
- jtbl  “A simple cli tool to print JSON data as a table in the terminal.”. Added on 2020-10-11.
- yamlpath  “Along with providing a standard for defining YAML Paths, this project aims to provide generally-useful command-line tools which implement YAML Paths.” (item contributed by /u/AndydeCleyre, 2021-03-27)
- 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
- jc  – “jc is used to JSONify the output of many standard linux cli tools”. Added on 2019-10-29 following comment from Kelly Brazil.
- 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.