2012-04-29 9 views
6

Ich gebe meine ersten Schritte mit ElasticSearch und Dinge zu testen, die ich gerade mit curl von der Kommandozeile aus arbeiten. Es ist jedoch etwas nervig, weil ich alles in einen Texteditor eingeben und in die Konsole einfügen muss (keine Tab-Formatierung in der Konsole), und die von Ihnen erhaltene json-Ausgabe ist nicht formatiert.Tools zum Arbeiten mit JSON und Curl von der Konsole

Also ich frage mich, ob es einige Äquivalenz der vielen SQL-Konsolen für die Arbeit mit JSON-Daten, um es einfacher zu testen und spielen mit JSON Rest Web-Services zu machen.

Welche Tools verwenden Sie für diese Art von Aufgaben?

Antwort

6

Zunächst, wenn die JSON-Ausgabe nicht formatiert ist, fügen Sie ?pretty=1 an eine beliebige URL an. Das Ergebnis wird viel schöner sein. Eine andere Möglichkeit ist, die Ausgabe an python -m json.tool zu übergeben, wenn Sie Python 2.6+ haben. Ich mag die letztere Option, weil ich es in einer Shell-Funktion gespeichert habe und einfach | j nach jedem Befehl eingeben kann, der json ausgibt. Viel kürzer und generisch.

Für die Ausgabe von Curl-Befehlen gibt es eine Reihe von Optionen. Die universellste Lösung besteht darin, ein Shell-Skript mit dem gesamten Befehl zu erstellen. Zum Beispiel:

Anstatt das an einer Shell-Eingabeaufforderung einzufügen, speichern Sie es in einer Datei. Dann zwicke einfach die Quelle und führe sie so oft wie nötig aus.

% sh query 

Eine Variante ist die Verwendung von Emacs. Ich verwende es, um curl auf Regionen von Puffern laufen zu lassen, manipulieren Sie das Ergebnis usw. shell-command-on-region oder ist eine gute Wahl dort. Für das obige Skript kann ich M-| sh RET ausgeben, anstatt zu einer Shell zu wechseln. Mit Vim können Sie etwas Ähnliches tun.

Ich habe dieses nicht überprüft, aber viele Leute scheinen elasticsearch-head zu mögen. Es ist eine Benutzeroberfläche, die Abfragen ausgibt und Ihnen strukturierte Ergebnisse liefert. http://mobz.github.com/elasticsearch-head/

aktualisieren: Ich bemerkte kürzlich, dass JSON Modul Schiffe Perl mit einem praktischen Nutzen Befehlszeilen json_ppjson.tool ähnlich wie Pythons der diese Funktion aufgerufen. Wenn Sie JSON::XS installieren, gibt es auch eine (schnellere) json_xs Bin.

+0

sehr gute Antwort, viele nützliche Tipps, BTW Ich benutze bereits Kopf und es ist ein wunderbares Werkzeug – opensas

3

Ich habe ein anderes Werkzeug gefunden, das ziemlich praktisch

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, 
... 

Es hat mehrere Optionen, scheint mit json zu arbeiten, wie Filterung

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

Ich empfehle die Sense plugin for Chrome. Es bietet intelligente Autocomplete, JSON-Syntaxprüfung und -aufbereitung sowie eine hübsche Syntax-hervorgehobene Ausgabe. Es wird aktiv entwickelt und ist das Werkzeug, das ich auswähle, wenn ich Anfragen in Vorträgen demonstrieren möchte.

+0

Das ist nicht remote Konsole basiert. – cweiske