在我的UNIX shell脚本中,当我执行curl命令时,我的curl结果将显示如下,我将其重定向到文件:
{"type":"Show","id":"123","title":"name","description":"Funny","channelTitle":"ifood.tv","lastUpdateTimestamp":"2014-04-20T20:34:59","numOfVideos":"15"}
但是,我想要将此输出放在文件中的可读JSON格式中,如下所示:
{"type":"Show",
"id":"123",
"title":"name",
"description":"Funny",
"channelTitle":"ifood.tv",
"lastUpdateTimestamp":"2014-04-20T20:34:59",
"numOfVideos":"15"}
请建议
答案 0 :(得分:354)
尝试这样做:
curl ... | json_pp
或使用jq使用标识过滤器:
curl ... | jq '.'
curl ... | node <<< "var o = $(cat); console.log(JSON.stringify(o, null, 4));"
答案 1 :(得分:33)
我猜你想要美化JSON输出。 这可以使用python实现:
curl http://localhost:8880/test.json | python -mjson.tool > out.json
答案 2 :(得分:29)
答案 3 :(得分:5)
我发现json_reformat非常方便。所以我只是做了以下事情:
curl http://127.0.0.1:5000/people/api.json | json_reformat
那就是它!
答案 4 :(得分:4)
这是吉尔斯答案的补充。有很多方法可以完成这项工作,但我个人更喜欢在常见的* nix系统上轻巧,易记和普遍可用的东西(例如,您首选的Linux风格的标准LTS安装或易于安装)。
以下是他们首选顺序中的选项:
Python Json.tool模块,例如, echo'{“foo”:“lorem”,“bar”:“ipsum”}'| python -mjson.tool (专业人士:几乎可以随处使用;缺点:没有颜色编码)
jq(可能需要一次安装) echo'{“foo”:“lorem”,“bar”:“ipsum”}'| JQ (缺点:需要安装jq;专业:颜色编码和多功能)
json_pp(在Ubuntu 16.04 LTS中可用),例如 echo'{“foo”:“lorem”,“bar”:“ipsum”}'| json_pp
对于Ruby用户, gem install jsonpretty echo'{“foo”:“lorem”,“bar”:“ipsum”}'| jsonpretty
答案 5 :(得分:4)
签出curljson
$ pip install curljson
$ curljson -i <the-json-api-url>
答案 6 :(得分:3)
python -m json.tool
Curl http://127.0.0.1:5000/people/api.json | python -m json.tool
也可以提供帮助。
答案 7 :(得分:3)
动机:您要在curl命令请求后打印美化JSON响应。
解决方案:json_pp-用于在某些输入和输出格式(其中之一是JSON)之间进行转换的命令行工具。该程序是从json_xs复制并修改的。默认输入格式为json,默认输出格式为json(带有pretty选项)。
症状:
json_pp [-v] [-f from_format] [-t to_format] [-json_opt options_to_json1[,options_to_json2[,...]]]
公式:<someCommand> | json_pp
示例:
请求
curl -X https://jsonplaceholder.typicode.com/todos/1 | json_pp
回复
{
"completed" : false,
"id" : 1,
"title" : "delectus aut autem",
"userId" : 1
}
答案 8 :(得分:1)
您可以使用this node module
sudo npm i -g json
;
然后只需在卷曲后附加|json
。
curl http://localhost:8880/test.json |json
答案 9 :(得分:0)