是否有(Unix)shell脚本将JSON格式化为可读格式?
基本上,我希望它转换以下内容:
{ "foo": "lorem", "bar": "ipsum" }
…变成这样:
{
"foo": "lorem",
"bar": "ipsum"
}
是否有(Unix)shell脚本将JSON格式化为可读格式?
基本上,我希望它转换以下内容:
{ "foo": "lorem", "bar": "ipsum" }
…变成这样:
{
"foo": "lorem",
"bar": "ipsum"
}
当前回答
同意jq。您可以将以下函数添加到$HOME/.bashrc中:
jqless () {
args=$1
shift
jq --color-output . $args "$@" | less --raw-control-chars
}
这允许任意数量的输入JSON文件。
其他回答
我用jshon来做你所描述的事情。只需运行:
echo $COMPACTED_JSON_TEXT | jshon
您还可以传递参数来转换JSON数据。
此外,请务必查看JSONFUI:一个支持折叠的命令行JSON查看器
$ sudo apt-get install edit-json
$ prettify_json myfile.json
更新我现在使用jq,正如另一个答案中所建议的。它在过滤JSON方面非常强大,但最基本的是,它也是一种漂亮的打印JSON以供查看的绝佳方式。
jsonpp是一个非常好的命令行JSON漂亮的打印机。
从自述文件:
漂亮的打印web服务响应如下:curl-s-L http://<!---->t.co/tYTq5Pu|jsonpp并使磁盘上运行的文件变得漂亮:jsonpp数据/long_malformed.json
如果您使用的是Mac OS X,则可以酝酿安装jsonpp。如果没有,您可以简单地将二进制文件复制到$PATH中的某个位置。
您可以使用Pretier来执行此操作。
npx更漂亮的<JSON文件>应该在给定文件中打印一个经过修饰的JSON版本,而npx更美丽的--write<JSON文件>将用经过修饰的JSON覆盖给定的JSON文件。