有没有办法让curl
命令的JSON输出默认打印漂亮?也就是说,如果没有为curl URL指定?pretty=true
选项,是否可以每次都显示相当漂亮的输出?
答案 0 :(得分:11)
我能够通过向我的.bashrc(或Mac上的.bash_profile)添加一个新别名来实现这一目标:
alias pp='python -mjson.tool'
然后,通过打开新终端或运行
重新加载.bashrc / .bash_profile配置$ source ~/.bashrc
您可以将curl输出管道输出到'pp'别名,如下所示:
$ curl -XGET http://localhost:9200/_search | pp
来源:http://ruslanspivak.com/2010/10/12/pretty-print-json-from-the-command-line/
答案 1 :(得分:2)
在大多数情况下,您使用其他产品的REST API(JQuery,PHP,Perl,Ruby ......)。这些框架不需要很好的输入。 因此,我假设在99%的请求中,您不希望通过漂亮呈现JSON来减慢您的请求。
恕我直言,你在调试或开发模式时只需要漂亮的打印。
选项可以是将其作为elasticsearch.yml
文件中的elasticsearch属性。 Open an issue为了它?
答案 2 :(得分:2)
ElasticSearch没有这样的永久设置,我不想要这样。我经常看到开发人员忘记在生产中撤消这些设置,然后整体产品性能下降。类似的例子是启用DEBUG日志记录,这是非常受欢迎的性能杀手。
您有很多工具可以简化您的开发:
加上前面提到的ElasticShell。
但是,如果你真的想在curl
中做到这一点,这就是我刚才做的简单技巧。在bash shell或脚本中运行:
curl() { `which curl` $@ | python -mjson.tool ; }
你像以前一样使用curl:
curl http://localhost:9200/
撤消:
unset -f curl
当然,如果您不喜欢上面的函数,最好将该函数命名为ppcurl
:)