2012-04-29 10 views
6

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

तो मैं सोच रहा था कि जेसन डेटा के साथ काम करने के लिए कई एसक्यूएल कंसोल के कुछ समकक्ष हैं, ताकि जेसन आराम वेब सेवाओं के साथ परीक्षण करना और खेलना आसान हो।

इस तरह के कार्यों के लिए आप किस टूल का उपयोग करते हैं?

उत्तर

6

सबसे पहले, यदि आपके द्वारा प्राप्त जेसन आउटपुट स्वरूपित नहीं है, तो ?pretty=1 किसी भी यूआरएल में संलग्न करें। नतीजा बहुत अच्छा होगा। यदि आपके पास Python 2.6+ है तो आउटपुट को python -m json.tool पर आउटपुट पाइप करना एक और विकल्प है। मुझे बाद वाला विकल्प पसंद है क्योंकि मैंने इसे शेल फ़ंक्शन में सहेजा है और जेसन आउटपुट करने वाले किसी भी कमांड के बाद | j टाइप कर सकता है। बहुत छोटा और सामान्य।

कर्ल कमांड जारी करने के लिए कुछ विकल्प हैं। सबसे सार्वभौमिक समाधान पूरे आदेश के साथ एक खोल स्क्रिप्ट बनाना है। उदाहरण के लिए:

curl -s localhost:9200/foo/_search -d' 
    {"query": 
    {"query_string": 
     {"query":"foo*"}}}' | python -m json.tool 

एक शेल प्रॉम्प्ट पर चिपकाने के बजाय, इसे फ़ाइल में सहेजें। फिर बस स्रोत को ट्विक करें और जितनी बार आपको आवश्यकता हो उतनी बार चलाएं।

% sh query 

इस पर एक बदलाव Emacs उपयोग करने के लिए है। मैं इसे बफर के क्षेत्रों पर curl चलाने के लिए उपयोग करता हूं, परिणाम में हेरफेर करता हूं, आदि shell-command-on-region या एक अच्छी पसंद है। तो उपर्युक्त लिपि के लिए, मैं खोल पर स्विच करने के बजाय M-| sh RET जारी कर सकता हूं। विम आपको कुछ ऐसा करने की अनुमति देता है।

मैंने इसे एक चेक नहीं किया है, लेकिन बहुत से लोग elasticsearch-head पसंद करते हैं। यह एक यूआई है जो प्रश्न जारी करेगा और आपको संरचित परिणाम देगा। http://mobz.github.com/elasticsearch-head/

अद्यतन: मैं हाल ही में देखा है कि एक आसान आदेश-पंक्ति उपयोगिता के साथ पर्ल के JSON मॉड्यूल जहाजों json_pp कहा जाता है कि समारोह के पायथन के json.tool की तरह ही। यदि आप JSON::XS इंस्टॉल करते हैं तो एक (तेज़) json_xs बिन भी है।

+0

बहुत अच्छा जवाब, बहुत उपयोगी टिप्स, बीटीडब्ल्यू मैं पहले से ही सिर का उपयोग कर रहा हूं और यह एक अद्भुत टूल है – opensas

3

मैं एक और उपकरण है कि बहुत आसान

http://stedolan.github.com/jq/tutorial/

curl ideasba.org/api/ideas/1 | jq . 

    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 525 100 525 0  0 990  0 --:--:-- --:--:-- --:--:-- 2488 
{ 
    "created": "2012-09-22T05:20:00Z", 
    "author": { 
    "nickname": "opensas", 
    "created": "2012-09-22T01:40:00Z", 
    "id": 2, 
... 

यह छानने

की तरह, json के साथ काम करने के लिए कई विकल्प मिला है लगता है मिल गया है
curl ideasba.org/api/ideas/1 | jq .votes 
    % Total % Received % Xferd Average Speed Time Time  Time Current 
           Dload Upload Total Spent Left Speed 
100 525 100 525 0  0 809  0 --:--:-- --:--:-- --:--:-- 2441 
{ 
    "neg": 1, 
    "pos": 8 
} 
0

मैं अत्यधिक Sense plugin for Chrome की सलाह देता हूं। यह आपको बुद्धिमान स्वत: पूर्ण, JSON वाक्यविन्यास जांच और tidying, और सुंदर वाक्यविन्यास-हाइलाइट आउटपुट देता है। यह सक्रिय रूप से विकसित किया जा रहा है, और यह वह टूल है जिसे मैं चुनता हूं जब मैं वार्ता में अनुरोध प्रदर्शित करना चाहता हूं।

+0

यह दूरस्थ रूप से कंसोल आधारित नहीं है। – cweiske

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