在我的Unix shell脚本中,当我执行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"}

如何以这种方式格式化输出?


当前回答

xidel:

curl <...> | xidel - -se '$json'

xidel也可以为您检索JSON。

其他回答

你可以使用json node模块:

NPM I -g json

然后简单地在curl后面追加| json。 Curl http://localhost:8880/test.json | json

这是对吉尔斯的回答的补充。有很多方法可以做到这一点,但就我个人而言,我更喜欢在常见的*nix系统上使用轻量级、易于记忆和普遍可用的东西(例如,附带您喜欢的Linux风格的标准LTS安装或易于安装)。

以下是这些选项的优先顺序:

Python Json。工具模块

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

我发现json_reformat非常方便。所以我做了以下事情:

curl http://127.0.0.1:5000/people/api.json | json_reformat

就是这样!

我猜您想美化JSON输出。 这可以使用python实现:

curl http://localhost:8880/test.json | python -mjson.tool > out.json

xidel:

curl <...> | xidel - -se '$json'

xidel也可以为您检索JSON。