是否有(Unix)shell 脚本以人类可读的形式格式化 JSON?
基本上,我希望它转换以下内容:
{ "foo": "lorem", "bar": "ipsum" }
…变成这样的东西:
使用 Python 2.6+,您可以:
echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool
或者,如果 JSON 在文件中,您可以执行以下操作:
python -m json.tool my_json.json
如果 JSON 来自 Internet 源(例如 API),您可以使用
curl http://my_url/ | python -m json.tool
在所有这些情况下,为了方便起见,您可以创建一个别名:
alias prettyjson='python -m json.tool'
为了更方便,请输入更多内容以做好准备:
prettyjson_s() { echo "$1" | python -m json.tool } prettyjson_f() { python -m json.tool "$1" } prettyjson_w() { curl "$1" | python -m json.tool }
对于上述所有情况。你可以把它放进去.bashrc,它每次都可以在 shell 中使用。像prettyjson_s '{"foo": "lorem", "bar": "ipsum"}'.
.bashrc
prettyjson_s '{"foo": "lorem", "bar": "ipsum"}'
请注意,正如@pnd 在下面的评论中指出的那样,在 Python 3.5+ 中,JSON 对象默认不再排序。要进行排序,请将--sort-keys标志添加到末尾。即... | python -m json.tool --sort-keys。
--sort-keys
... | python -m json.tool --sort-keys