2013-04-04 12 views
5

有沒有辦法使curl命令的JSON輸出默認打印?也就是說,沒有爲curl URL指定?pretty=true選項,是否可以每次都顯示漂亮的輸出?彈性搜索:使漂亮的格式爲默認

+1

我可以建議看看[elasticshell](https://github.com/jav)安娜/ elasticshell)?這比jQuery友好多了,並且只顯示了很好的json對象。 [本文](http://blog.trifork.com/2013/03/06/introducing-the-elasticshell/)也應該有用。 – javanna 2013-04-04 15:53:16

+0

爲它加星標。目前,在使用彈性外殼之前學習彈性搜索本身,將試圖使用彈性搜索來獲得舒適感。 – callmekatootie 2013-04-04 16:01:58

回答

11

我能夠通過添加新的別名,我的.bashrc做到這一點(或.bash_profile中在Mac):

alias pp='python -mjson.tool' 

然後,打開一個新的重新加載的.bashrc/.bash_profile中配置後終端或通過運行

$ source ~/.bashrc 

可以管捲曲輸出到 'PP' 別名如下:

$ curl -XGET http://localhost:9200/_search | pp 

來源:http://ruslanspivak.com/2010/10/12/pretty-print-json-from-the-command-line/

2

在大多數情況下,您使用其他產品(JQuery,PHP,Perl,Ruby ...)的REST API。這些框架不需要有漂亮的輸入。 所以,我假設在99%的請求中你不想緩慢你的請求通過漂亮的渲染JSON。

恕我直言,你只需要漂亮的打印時,進行調試或在開發模式。

選項可能是將其作爲elasticsearch.yml文件中的elasticsearch屬性。 Open an issue它?

+0

我現在明白了爲什麼這個問題沒有作爲一個「問題」提出,或者不是一個內置的功能 - 就像你說的那樣,它被用在其他產品中,而不是直接使用'curl'。我實際上試圖在我的應用程序中使用它之前學習它,因此如果我的搜索查詢正在返回正確的結果,則希望檢查控制檯本身 - 它有點惱人的指定它所有的時間... – callmekatootie 2013-04-04 15:59:05

2

ElasticSearch沒有這樣的永久設置,我不想這樣。很多時候,我發現開發人員忘記在生產環境中撤銷這些設置,然後整體產品性能下降。類似的例子是啓用DEBUG日誌記錄,這是非常受歡迎的性能殺手。

你有足夠的工具來簡化開發:

  • RestClient‎ Firefox插件
  • [ElasticSearch頭] - 優秀的ES管理員甚至相當格式的輸入

加上前面提到的ElasticShell 。

但是,如果你真的真的想要在curl這是簡單的技巧,我剛剛做出。在你的bash shell或腳本運行此:

你使用捲曲像以前一樣:

curl http://localhost:9200/ 

要撤消:

unset -f curl 

當然,這將是更好的命名函數作爲ppcurl如果你不喜歡以上:)