# README
jpp
JSON Prettier Printer that occupies a minimal number of lines while pretty-printing given JSON, using prettier which is Go implementation of "Wadler's "A Prettier Printer".
jpp
is quite useful when we want to pretty print the JSON whose each node has a lot of children scalar values.
This
example.json
cites from https://json.org/example.html
Instalation
Homebrew
$ brew install tanishiking/jpp/jpp
Download binary from GitHub Releases
https://github.com/tanishiking/jpp/releases
Build from source
$ go get -u github.com/tanishiking/jpp/cmd/jpp
Develop
$ make build # build binary into ./bin/jpp
$ make test # run all unit tests
jpp command
Options
-w
: width (default: your terminal width)- Note that this command does not guarantee there are no lines longer than
width
- It just attempts to keep lines within this length when possible.
- Note that this command does not guarantee there are no lines longer than
-i
: indent string (default:' '
)
Environment Variables
We can specify the color of output string using following environment variables
JPP_NULL
JPP_BOOL
JPP_NUMBER
JPP_STRING
JPP_FIELDNAME
and builtin colors:
black
red
green
brown
blue
magenta
cyan
gray
bold_black
bold_red
bold_green
bold_brown
bold_blue
bold_magenta
bold_cyan
bold_gray
For example, cat some.json | JPP_NUMBER=bold_red jpp
.
In addition, we can specify complicated styles using SGR code.
See: https://en.wikipedia.org/wiki/ANSI_escape_code
$ go get -u github.com/tanishiking/jpp/cmd/jpp
$ cat numbers.json
[
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ],
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ],
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ]
]
$ cat numbers.json | jpp -w 20
[
[
1, 2, 3, 4, 5,
6, 7, 8, 9, 10
],
[
1, 2, 3, 4, 5,
6, 7, 8, 9, 10,
11, 12, 13, 14,
15
],
[
1, 2, 3, 4, 5,
6, 7, 8, 9, 10,
11, 12, 13, 14,
15, 16, 17, 18,
19, 20
]
]
Package Usage
import (
"fmt"
"github.com/tanishiking/jpp"
)
func main() {
jsonStr := `
[
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ],
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ],
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20 ]
]
`
res, _ := jpp.Pretty(jsonStr, " ", 20, nil)
fmt.Println(res)
// [
// [
// 1, 2, 3, 4, 5,
// 6, 7, 8, 9, 10
// ],
// [
// 1, 2, 3, 4, 5,
// 6, 7, 8, 9, 10,
// 11, 12, 13, 14,
// 15
// ],
// [
// 1, 2, 3, 4, 5,
// 6, 7, 8, 9, 10,
// 11, 12, 13, 14,
// 15, 16, 17, 18,
// 19, 20
// ]
// ]
}
# Packages
No description provided by the author
# Functions
Black formats according to a format specifier and returns the resulting string colored by black.
Blue formats according to a format specifier and returns the resulting string colored by blue.
BoldBlack formats according to a format specifier and returns the resulting bold string colored by black.
BoldBlue formats according to a format specifier and returns the resulting bold string colored by blue.
BoldBrown formats according to a format specifier and returns the resulting bold string colored by brown.
BoldCyan formats according to a format specifier and returns the resulting bold string colored by cyan.
BoldGray formats according to a format specifier and returns the resulting bold string colored by gray.
BoldGreen formats according to a format specifier and returns the resulting bold string colored by green.
BoldMagenta formats according to a format specifier and returns the resulting bold string colored by magenta.
BoldRed formats according to a format specifier and returns the resulting bold string colored by red.
Brown formats according to a format specifier and returns the resulting string colored by brown.
Cyan formats according to a format specifier and returns the resulting string colored by cyan.
Gray formats according to a format specifier and returns the resulting string colored by gray.
Green formats according to a format specifier and returns the resulting string colored by green.
Magenta formats according to a format specifier and returns the resulting string colored by magenta.
NoColor formats according to a format specifier and returns the resulting string.
Pretty prettifies specified json string.
Red formats according to a format specifier and returns the resulting string colored by red.
# Variables
DefaultScheme is plain color scheme that doesn't specify any colors or SGRs.
# Structs
ColorScheme is used for specifying the output color or SGR using https://github.com/fatih/color.
# Type aliases
ColoredFormat formats according to a format specifier and returns the resulting string.