curl输出在UNIX shell脚本中以可读的JSON格式显示
在我的UNIX shell脚本中,当我执行一个curl命令时,我的curl结果将显示如下,我将它redirect到文件:
{"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"}
请build议
尝试这样做:
curl ... | json_pp
或使用身份filter与jq :
curl ... | jq '.'
或与nodejs和bash :
curl ... | node <<< "var o = $(cat); console.log(JSON.stringify(o, null, 4));"
我猜你想要美化JSON输出。 这可以通过使用python来实现:
curl http://localhost:8880/test.json | python -mjson.tool > out.json
-
brew install jq
-
command + | jq
- (例如:
curl localhost:5000/blocks | jq
) - 请享用!
我发现json_reformat非常方便。 所以我只是做了以下几点:
curl http://127.0.0.1:5000/people/api.json | json_reformat
而已!
这是吉尔斯的答案。 有很多方法可以完成这个任务,但是我个人更喜欢轻量级的,易于记忆的和普遍可用的(例如,在普通的* nix系统中提供标准的LTS安装,你喜欢的Linux风格或易于安装)。
以下是他们首选顺序的选项:
-
Python的Json.tool模块,例如,echo“{”foo“:”lorem“,”bar“:”ipsum“}' python -mjson.tool(优点:几乎到处都是;缺点:没有颜色编码)
-
jq(可能需要一次安装)echo'{“foo”:“lorem”,“bar”:“ipsum”}' jq(缺点:需要安装jq;优点:颜色编码和多function)
-
json_pp(在Ubuntu 16.04 LTS中可用),例如echo'{“foo”:“lorem”,“bar”:“ipsum”}' json_pp
-
对于Ruby用户,gem install jsonpretty echo'{“foo”:“lorem”,“bar”:“ipsum”}' jsonpretty
只需在curl命令中附加?pretty
关键字as-
如果你的curl命令是这样的 –
curl -XGET 'http://localhost:9200/_cluster/state'
然后有这样漂亮的输出使用 –
curl -XGET 'http://localhost:9200/_cluster/state'?pretty