Hacker Timesnew | past | comments | ask | show | jobs | submitlogin
Easy CLI JSON Formatting (binarysludge.com)
33 points by sublimino on Nov 9, 2012 | hide | past | favorite | 10 comments



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 Paul Irish's .function dotfile solution: https://github.com/paulirish/dotfiles/blob/master/.functions....

Really recommend setting up his dotfiles. After you back up your dotfiles, you can install his (which overwrites yours) just by writing

    git clone https://github.com/paulirish/dotfiles.git && cd dotfiles && ./sync.sh


This is another good one for formatting / filtering json: http://stedolan.github.com/jq/


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'


I've done something similar a while back. A simple "works-for-me" package. Feel free to try it out:

https://github.com/exhuma/braindump/tree/master/jsonformat


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


I use jazor and coderay for that:

gem install jazor coderay

curl $SOMETHING | jazor | coderay -json


Or with jsonlist in NodeJS.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: