2016年7月6日 星期三

在 Shell 下 pretty print JSON

Python

$ python -m json.tool some.json
或
$ cat some.json | python -m json.tool

PHP json_decode

上面 python 的方法只是純排版,但是如果 unicode 已經被編碼為 \xxxxx 模式的話,不會幫你 unescape。
所以又想了這一招
在 .bashrc 或 .bash_profile 加入
alias pretty_json='php -r "\$json = file_get_contents(\"php://stdin\", \"r\"); \$d=json_decode(\$json); echo json_encode(\$d, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT) . PHP_EOL;"'

之後只要下
$ cat some.json | pretty_json