2013-04-04 14 views
5

के रूप में सुंदर प्रारूप बनाएं curl कमांड के JSON आउटपुट को डिफ़ॉल्ट रूप से मुद्रित करने का कोई तरीका है? यही है, कर्ल यूआरएल में ?pretty=true के विकल्प को निर्दिष्ट किए बिना, आउटपुट को हर बार मुद्रित करना संभव है?लोचदार खोज: डिफ़ॉल्ट प्रारूप को

+1

क्या मैं [elasticshell] (https://github.com/jav] पर एक नज़र डालने का सुझाव दे सकता हूं अन्ना/elasticshell)? यह कर्ल की तुलना में बहुत अधिक जेसन अनुकूल है और केवल अच्छी सुंदर जेसन वस्तुओं को दिखाता है। [यह आलेख] (http://blog.trifork.com/2013/03/06/introducing-the-elasticshell/) भी उपयोगी होना चाहिए। – javanna

+0

इसे तारांकित किया गया। वर्तमान में लोचदार खोल का उपयोग करने से पहले लोचदार खोज सीखना, लोचदार खोज के साथ सहज महसूस करने का प्रयास करेगा। – callmekatootie

उत्तर

11

मैं अपने .bashrc करने के लिए एक नया उपनाम जोड़कर यह पूरा करने में सक्षम था (या किसी Mac .bash_profile): तो फिर

alias pp='python -mjson.tool' 

, एक नया खोलने के द्वारा .bashrc/.bash_profile विन्यास को फिर से लोड करने के बाद टर्मिनल या

$ source ~/.bashrc 

चलाकर आप 'पीपी' उर्फ ​​करने के लिए पाइप कर्ल उत्पादन इस प्रकार कर सकते हैं:

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

स्रोत: http://ruslanspivak.com/2010/10/12/pretty-print-json-from-the-command-line/

2

ज्यादातर मामलों में, आप अन्य उत्पादों (JQuery, PHP, पर्ल, रूबी ...) से आरईएसटी एपीआई का उपयोग करते हैं। इन ढांचे में सुंदर इनपुट करने की आवश्यकता नहीं है। तो, मुझे लगता है कि 99% अनुरोधों में आप धीमी सुंदर प्रतिपादन JSON द्वारा आपके अनुरोध नहीं चाहते हैं।

आईएमएचओ, डीबग या देव मोड में आपको केवल सुंदर प्रिंट की आवश्यकता है।

elasticsearch.yml फ़ाइल में इसे एक लोचदार संपत्ति के रूप में रखने का विकल्प हो सकता है। इसके लिए Open an issue?

+0

अब मैं समझता हूं कि इसे "समस्या" के रूप में क्यों नहीं बनाया गया था या निर्मित कार्यक्षमता नहीं है - जैसा कि आपने इसे रखा है, इसका उपयोग अन्य उत्पादों के अंदर किया जाता है और कोई सीधे 'curl' का उपयोग नहीं करता है। मैं वास्तव में इसे अपने आवेदन के अंदर उपयोग करने से पहले इसे सीखने का प्रयास कर रहा हूं और इस प्रकार मेरी खोज क्वेरी सही परिणाम लौट रही है या नहीं - इस प्रकार कंसोल पर जांचना चाहती है - यह हर समय इसे निर्दिष्ट करने के लिए थोड़ा परेशान है ... – callmekatootie

2

लोचदार खोज में ऐसी कोई स्थायी सेटिंग नहीं है और मुझे ऐसा नहीं चाहिए। अक्सर मैं देखता हूं कि डेवलपर्स उत्पादन में ऐसी सेटिंग्स को पूर्ववत करना भूल जाते हैं और फिर समग्र उत्पाद प्रदर्शन खराब हो जाता है। इसी तरह का उदाहरण DEBUG लॉगिंग सक्षम है जो बहुत लोकप्रिय प्रदर्शन हत्यारा है।

आप अपने विकास को कम करने के उपकरण के बहुत सारे है:

  • RestClient‎ फ़ायरफ़ॉक्स प्लगइन
  • [ElasticSearch हेड] - उत्कृष्ट ES व्यवस्थापक जो भी सुंदर स्वरूप आपके इनपुट

प्लस जैसा कि पहले उल्लेख ElasticShell ।

हालांकि यदि आप वास्तव में इसे वास्तव में curl में बनाना चाहते हैं तो यह सरल चाल है जिसे मैंने अभी बनाया है। अपने bash खोल या स्क्रिप्ट में इस चलाएँ:

और आप के रूप में कर्ल का उपयोग करने से पहले:

curl http://localhost:9200/ 

पूर्ववत करने के लिए:

unset -f curl 
बेशक

यह बेहतर होगा समारोह नाम के लिए ppcurl के रूप में यदि आप ऊपर पसंद नहीं करते हैं :)

संबंधित मुद्दे