是否有(Unix)shell脚本将JSON格式化为可读格式?
基本上,我希望它转换以下内容:
{ "foo": "lorem", "bar": "ipsum" }
…变成这样:
{
"foo": "lorem",
"bar": "ipsum"
}
是否有(Unix)shell脚本将JSON格式化为可读格式?
基本上,我希望它转换以下内容:
{ "foo": "lorem", "bar": "ipsum" }
…变成这样:
{
"foo": "lorem",
"bar": "ipsum"
}
当前回答
此外,请务必查看JSONFUI:一个支持折叠的命令行JSON查看器
其他回答
我通常只做:
echo '{"test":1,"test2":2}' | python -mjson.tool
要检索选择数据(在本例中为“测试”值):
echo '{"test":1,"test2":2}' | python -c 'import sys,json;data=json.loads(sys.stdin.read()); print data["test"]'
如果JSON数据在文件中:
python -mjson.tool filename.json
如果您想使用身份验证令牌在命令行上使用curl一次性完成所有操作:
curl -X GET -H "Authorization: Token wef4fwef54te4t5teerdfgghrtgdg53" http://testsite/api/ | python -mjson.tool
看看Jazor。这是一个用Ruby编写的简单命令行JSON解析器。
gem install jazor
jazor --help
下面是Groovy的一行代码:
echo '{"foo": "lorem", "bar": "ipsum"}' | groovy -e 'import groovy.json.*; println JsonOutput.prettyPrint(System.in.text)'
使用以下命令安装yajl工具:
sudo apt-get install yajl-tools
然后
echo '{"foo": "lorem", "bar": "ipsum"}' | json_reformat
使用jq工具的原生方式并不太简单。
例如:
cat xxx | jq .