ppjson v1.4.0
PPJSON
Small command-line utility to pretty-print JSON files. Colour included.

Installation
npm -g install ppjsonUsage
JSON data can be supplied from a file, or piped through standard input:
ppjson < json.file
ppjson json.file
node spit-json-to-stdout.js | ppjsonRun man ppjson to access everything you're reading here.
Options
-a, --alphabetise Order properties alphabetically
-c, --colour [bool] Colourise the prettified output
-i, --indent [size=4] Indentation width, expressed in spaces
-m, --mutilate [bool] Unquote property identifiers
-p, --paged [bool] Show content in pager if longer than screen
-t, --tabs Use tabs to indent output instead of spaces
-u, --underline-urls [bool] Add underlines to URLs
-v, --version Print the program's version string and exit
-w, --write Write prettified data back to filesThe [bool] options above are all enabled by default.
You can disable them by passing 0, "false", "no" or "off" as values (their capitalisation doesn't matter):
# All these lines are equivalent
ppjson --mutilate=no
ppjson --mutilate OFF
ppjson --mutilate 0
ppjson -m0
ppjson --mutilate falseOption order is inconsequential: it doesn't matter if they're listed before or after a filename:
# Same damn thing:
ppjson -m0 file.json
ppjson file.json -m0Examples
Use 2 spaces for indentation instead of 4:
ppjson --indent=2 file.jsonDisable colours:
ppjson -c0 < file.jsonDon't remove quote marks from property names:
ppjson -m false file.json
ppjson --mutilate nah < file.jsonYes, I really did include "nah" as a possible synonym for a false boolean value. Try it.
Customising colours
If you'd like to change the colours, you can do so with environment variables.
Drop the following into your .bash_profile or shell equivalent:
export PPJSON_COLOURS='s=38;5;2:n=38;5;2:t=38;5;6:f=38;5;6:n=38;5;6:p=38;5;8:e=38;5;1;u='
# Older format which uses colour indexes
export PPJSON_COLOUR_STRINGS=2
export PPJSON_COLOUR_NUMBERS=2
export PPJSON_COLOUR_TRUE=6
export PPJSON_COLOUR_FALSE=6
export PPJSON_COLOUR_NULL=6
export PPJSON_COLOUR_PUNCT=8
export PPJSON_COLOUR_ERROR=1Default values are depicted above.
The syntax of PPJSON_COLOURS is similar to GREP_COLORS.
Each single-letter field corresponds to a different part of the output that can be styled:
s # Strings
n # Numbers
t # True
f # False
n # Null
p # Punctuation (colons and brackets)
e # Error highlighting
u # Unquoted property keys