JSONファイルをコマンドで見やすく整形するには (pretty printing)

JSONファイルに改行やインデントを入れて、ターミナル上で人間にとって読みやすく表示させる方法。

$ cat FOO.json | perl -MEncode -MJSON::PP -e '$json=JSON::PP->new->pretty; $obj=$json->decode(decode_utf8(join("",(<STDIN>)))); print encode_utf8($json->encode($obj))'

# または
$ cat FOO.json | perl -MEncode -MJSON::PP -e '$json=JSON::PP->new->pretty->canonical; $obj=$json->decode(decode_utf8(join("",(<STDIN>)))); print encode_utf8($json->encode($obj))'

1つ目は、オブジェクトの中の要素はJSONで書かれているのと同じ順番で表示される。

2つ目は、オブジェクトの中の要素はキーのアルファベット順にソートして表示される。

json_pp というPerlで書かれたツールの中身は実質これらワンライナーと同じである。

関連

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。