10 comments

[ 3.6 ms ] story [ 39.0 ms ] thread
Or with jsonlist in NodeJS.
I use jazor and coderay for that:

gem install jazor coderay

curl $SOMETHING | jazor | coderay -json

A problem with piping curl output through "python -mjson.tool" is that you can't include the response headers, which is sometimes useful.

(This was enough of a problem for me that I wrote a simple curl replacement in Python so I could have pretty-printed JSON or XML and response headers, or send the response directly to a Python REPL console as an object: https://github.com/cobralibre/hotpotato )

Emit the headers to stderr?

  curl -v -s "$url" | python -mjson.tool
  curl -D /dev/stderr -s "$url" | python -mjson.tool
Here is the bash alias I have been using for CLI JSON formatting, and as a bonus, my random password generator:

alias jsonpp='ruby -r json -e '\''puts JSON.pretty_generate(JSON.parse(STDIN.read))'\'''

alias md5pass='dd if=/dev/random bs=100 count=1 2>/dev/null | md5'

httpie is a nice replacement for curl which, among other things, has built-in formatting so you can get pretty JSON / XML responses without giving up your ability to do things like displaying response headers:

https://github.com/jkbr/httpie