Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A "json" command for massaging JSON on your Unix command line.
JavaScript Makefile Python

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin
deps
docs
lib
support
test
.gitignore
.gitmodules
AUTHORS
CHANGES.md
LICENSE.txt
Makefile
README.md
TODO.md
package.json

README.md

A "json" command for working with JSON on the command line. It is a single-file node.js script with no external deps (other than node itself). Here is a taste:

$ echo '{"foo":"bar"}' | json
{
  "foo": "bar"
}
$ echo '{"foo":"bar"}' | json foo
bar

Use it to:

  • pretty-print JSON to help read it
  • extract particular values (see LOOKUPS in usage)
  • get details on JSON syntax errors (handy for config files)
  • filter input JSON (see -e and -c options)

Follow @trentmick for updates to jsontool.

See http://trentm.com/json for full docs and many examples.

Installation

  1. Get node.

  2. npm install -g jsontool

OR manually:

  1. Get the 'json' script and put it on your PATH somewhere (it is a single file with no external dependencies). For example:

    cd ~/bin
    curl -L https://github.com/trentm/json/raw/master/lib/jsontool.js > json
    chmod 755 json
    

You should now have "json" on your PATH:

$ json --version
json 3.1.2

Test suite

make test

You can also limit (somewhat) which tests are run with the TEST_ONLY envvar, e.g.:

cd test && TEST_ONLY=executable nodeunit test.js

I test against node 0.4, 0.6, 0.7 and (occassionally) node master.

License

MIT (see the fine LICENSE.txt file).

Command-Line Usage

<something generating JSON on stdout> | json [OPTIONS] [LOOKUPS...]

See json --help output for full details.

Module Usage

Since v1.3.1 you can use "jsontool" as a node.js module:

var jsontool = require('jsontool');

However, so far the module API isn't that useful and the CLI is the primary focus.

Alternatives you might prefer

Something went wrong with that request. Please try again.