A "json" command for massaging JSON on your Unix command line.
See the codejson is a fast CLI tool for working with JSON. It is a single-file node.js
script with no external deps (other than
node.js itself). A quick taste:
$ echo '{"foo":"bar"}' | json
{
"foo": "bar"
}
$ echo '{"foo":"bar"}' | json foo
bar
$ echo '{"fred":{"age":42}}' | json fred.age # '.' for property access
42
$ echo '{"age":10}' | json -e 'this.age++'
{
"age": 11
}
# `json -ga` (g == group, a == array) for streaming mode
$ echo '{"latency":32,"req":"POST /widgets"}
{"latency":10,"req":"GET /ping"}
' | json -gac 'this.latency > 10' req
POST /widgets
Features:
-e and -c options)-ga)See https://trentm.com/json for full docs and examples as a man page.
Follow @trentmick for updates to json.
Get node.
npm install -g json
Note: This used to be called 'jsontool' in the npm registry, but as of version 8.0.0 it has taken over the 'json' name. See npm Package Name below.
OR manually:
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/json.js > json
chmod 755 json
You should now have "json" on your PATH:
$ json --version
json 9.0.0
WARNING for Ubuntu/Debian users: There is a current bug in Debian stable
such that "apt-get install nodejs" installed a nodejs binary instead of a
node binary. You'll either need to create a symlink for node, change the
json command's shebang line to "#!/usr/bin/env nodejs" or use
chrislea's PPA as
discussed on issue #56. You can also do "apt-get install nodejs-legacy" to install symlink for node with apt.
npm test # or 'make test'
This is using node-tap, so you can use all its options, for example filtering which tests to run:
npm test -- -g stream
MIT (see the fine LICENSE.txt file).
Since v1.3.1 you can use "json" as a node.js module:
var json = require('json');
However, so far the module API isn't that useful and the CLI is the primary focus.
Once upon a time, json was a different thing (see zpoley's json-command
here), and this module was
called jsontool in npm. As of version 8.0.0 of this module, npm install json
means this tool.
If you see documentation referring to jsontool, it is most likely
referring to this module.
Overall
Maintained
Code review
npm
Latest release
Releases this year
658 followers · starred Feb 2011
804 followers · starred May 2014
925 followers · starred Aug 2022
69 followers · starred Sep 2024
A "json" command for massaging JSON on your Unix command line.
See the codejson is a fast CLI tool for working with JSON. It is a single-file node.js
script with no external deps (other than
node.js itself). A quick taste:
$ echo '{"foo":"bar"}' | json
{
"foo": "bar"
}
$ echo '{"foo":"bar"}' | json foo
bar
$ echo '{"fred":{"age":42}}' | json fred.age # '.' for property access
42
$ echo '{"age":10}' | json -e 'this.age++'
{
"age": 11
}
# `json -ga` (g == group, a == array) for streaming mode
$ echo '{"latency":32,"req":"POST /widgets"}
{"latency":10,"req":"GET /ping"}
' | json -gac 'this.latency > 10' req
POST /widgets
Features:
-e and -c options)-ga)See https://trentm.com/json for full docs and examples as a man page.
Follow @trentmick for updates to json.
Get node.
npm install -g json
Note: This used to be called 'jsontool' in the npm registry, but as of version 8.0.0 it has taken over the 'json' name. See npm Package Name below.
OR manually:
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/json.js > json
chmod 755 json
You should now have "json" on your PATH:
$ json --version
json 9.0.0
WARNING for Ubuntu/Debian users: There is a current bug in Debian stable
such that "apt-get install nodejs" installed a nodejs binary instead of a
node binary. You'll either need to create a symlink for node, change the
json command's shebang line to "#!/usr/bin/env nodejs" or use
chrislea's PPA as
discussed on issue #56. You can also do "apt-get install nodejs-legacy" to install symlink for node with apt.
npm test # or 'make test'
This is using node-tap, so you can use all its options, for example filtering which tests to run:
npm test -- -g stream
MIT (see the fine LICENSE.txt file).
Since v1.3.1 you can use "json" as a node.js module:
var json = require('json');
However, so far the module API isn't that useful and the CLI is the primary focus.
Once upon a time, json was a different thing (see zpoley's json-command
here), and this module was
called jsontool in npm. As of version 8.0.0 of this module, npm install json
means this tool.
If you see documentation referring to jsontool, it is most likely
referring to this module.
Overall
Maintained
Code review
npm
Latest release
Releases this year
658 followers · starred Feb 2011
804 followers · starred May 2014
925 followers · starred Aug 2022
69 followers · starred Sep 2024