在我的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"}

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


当前回答

动机:你想在curl命令请求后打印美化的JSON响应。

解决方案:json_pp -在某些输入和输出格式(其中之一是JSON)之间转换的命令行工具。这个程序是从json_xs复制并修改的。默认的输入格式是json,默认的输出格式是带有pretty选项的json。

Synposis: Json_pp [-v] [-f from_format] [-t to_format] [-json_opt options_to_json1[,options_to_json2[,…]]]

公式:<someCommand> | json_pp . sh

例子:

请求

curl -X https://jsonplaceholder.typicode.com/todos/1 | json_pp 

响应

{
   "completed" : false,
   "id" : 1,
   "title" : "delectus aut autem",
   "userId" : 1
}

其他回答

查看curljson

$ pip install curljson
$ curljson -i <the-json-api-url>

我发现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。

python -m json.tool
Curl http://127.0.0.1:5000/people/api.json | python -m json.tool

也能有所帮助。