2009-07-03 1 views
1

Ich habe eine nächtliche ausführbare Datei, die auf einem Windows- oder Linux-Server ausgeführt wird, der Informationen aus verschiedenen Webquellen herunterlädt und eine dieser Quellen eine JSON-Antwort enthält. Diese ausführbare Datei wird die Informationen herunterladen und eine Verbindung zu einer SQL Server-Datenbank herstellen, um die entsprechenden Datensätze zu aktualisieren.Was wird verwendet, um JSON-Antworten in einer Befehlszeile zu verarbeiten?

Ich komme von einem C#, Windows-Programmierhintergrund, so dass meine natürliche Neigung ist, die JSON.net-Bibliotheken zu verwenden oder benutzerdefinierten Code zu erstellen, um den JSON-Text mit C# zu analysieren. Aber ich würde lieber die entsprechende Skriptsprache verwenden, um die eval()-Anweisung zu nutzen, um den JSON zu verarbeiten.

Hat jemand einen Vorschlag, welche Skriptsprache und Entwicklungsumgebung für diese Art von Serverprozess am besten geeignet wäre? Es ist mir egal, ob es auf dem Linux- oder Windows-Server läuft, ich möchte nur das beste verfügbare Werkzeug verwenden.

Antwort

0

Die eval() - Methode funktioniert nur innerhalb von JavaScript, da JSON gültige JavaScript-Syntax ist. Möglicherweise können Sie etwas wie Rhino (Java) verwenden, aber ansonsten wird für jede Sprache, die Sie auswählen, eine JSON-Bibliothek benötigt. Da Sie mit C# und .NET am besten vertraut sind, scheint es die logischste Wahl zu sein, wenn die Zielmaschine diese bereits verfügbar hat.

0

JSONsharp (.Net 2.0+) oder JSON.net (.Net 3.5) sind hier Ihre Freunde, ebenso wie andere unter JSON.org.

Aber passen die eval() Anweisung in JavaScript - es die JSON ausführt, also wenn jemand Javascript in es gesetzt hat, findet man sich Ausführen von Code finden. Stattdessen möchten Sie etwas wie JSON.parse verwenden. .

0

sollte Jede Skripting-Umgebung in Ordnung sein, und alle haben fast anständigen JSON-Parser in gebaut

Hier ist ein Python-Beispiel (benötigter Python 2.6 oder höher für die eingebauten in json Modul, sonst simplejson herunterladen):

import urllib2, json 
response = urllib2.urlopen("http://example.net/url/for/json").read() 
data = json.loads(response) # returns a native Python type, e.g. a dictionary 

# your code here 
process_and_update_db(data) 

Wenn Sie .NET verwenden möchten (vielleicht einfacher auf Ihre Datenbank zugreifen können) und eine gute Skriptsprache wie Python benötigen, versuchen Sie IronPython. Sie können herunterladen und verwenden simplejson anstelle von json.