https://github.com/alhadis/ppjson
Small command-line utility to pretty-print JSON files. Colour included.
https://github.com/alhadis/ppjson
beautifier colours formatter json pretty-printer
Last synced: 6 months ago
JSON representation
Small command-line utility to pretty-print JSON files. Colour included.
- Host: GitHub
- URL: https://github.com/alhadis/ppjson
- Owner: Alhadis
- License: isc
- Created: 2015-12-29T12:35:09.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2018-02-25T05:53:46.000Z (over 7 years ago)
- Last Synced: 2025-04-10T03:10:35.918Z (6 months ago)
- Topics: beautifier, colours, formatter, json, pretty-printer
- Language: JavaScript
- Homepage: https://www.npmjs.com/package/ppjson
- Size: 108 KB
- Stars: 6
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
PPJSON
=======Small command-line utility to pretty-print JSON files. Colour included.

Installation
------------npm -g install ppjson
Usage
-----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.json
Disable colours:
ppjson -c0 < file.json
Don'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:~~~shell
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=1
~~~Default values are depicted above.
The syntax of `PPJSON_COLOURS` is similar to [`GREP_COLORS`](https://www.gnu.org/software/grep/manual/html_node/Environment-Variables.html).
Each single-letter field corresponds to a different part of the output that can be styled:~~~shell
s # Strings
n # Numbers
t # True
f # False
n # Null
p # Punctuation (colons and brackets)
e # Error highlighting
u # Unquoted property keys
~~~