JSON Pretty Printer

Add some whitespace to JSON to make it more readable. Try to keep the lines no more than linewidth, but long strings can make that impossible. If an array or object will fit on a line, it does so, otherwise it is broken up into shorter lines and indented. If tight is chosen, multiple elements will be display on an indented line, otherwise, each element of the array or object gets its own line. If depth is non-zero, elements at a depth of nesting greater than depth are replaced by an elipsis (...).

linewidth: indent per level: tight: depth: