2009-07-03 46 views
1

我有一個夜間可執行文件,將運行在Windows或Linux服務器上,將從各種Web源下載信息,其中一個源包含JSON響應。該可執行文件將下載信息並連接到SQL服務器數據庫以更新適當的記錄。在命令行上如何處理JSON響應?

我來自一個C#編程背景的窗口,所以我的自然傾向是使用JSON.net庫或創建自定義代碼使用C#來解析JSON文本。但我更願意使用適當的腳本語言來利用eval()語句來處理JSON。

沒有人有哪些腳本語言和開發環境,這將是最適合這種服務器進程的建議?如果它運行在Linux或Windows服務器上,那對我無關緊要,我只想使用最好的工具。

回答

0

中的eval()方法僅適用在JavaScript中,由於JSON是有效的JavaScript語法。您可能可以使用Rhino(Java)之類的東西,但除此之外,您選擇的每種語言都需要使用JSON庫。由於您對C#和.NET最爲熟悉,因此如果目標機器已經具備它,這似乎是最合理的選擇。

0

JSONsharp(.NET 2.0+)或JSON.net(.NET 3.5)是你的朋友在這裏,因爲是別人的JSON.org

但要注意在JavaScript中eval()聲明 - 它執行的JSON,所以如果有人已經把JavaScript的在那裏,你會發現自己運行的代碼。相反,你會想要使用類似JSON.parse。 。

0

任何腳本環境要細,幾乎所有的內置像樣的JSON解析器

下面是一個Python的例子(需要Python 2.6和彌補了內置json模塊,否則下載simplejson):

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) 

如果您想要使用.NET(例如,可能更容易訪問您的數據庫),並且想要像Python這樣的好腳本語言,請嘗試IronPython。您可以使用下載並使用simplejson而不是json