最近在一個POC的項目中要用到JSON和XML的相互轉換, 雖然我知道很多類庫如JSON.NET具備這種功 能, 但是我還是另辟蹊徑的使用Spider Studio結合一個在線工具網站快速實現了這個功能.
在線工具網站: http://www.utilities-online.info/xmltojson
必備工具: Spider Studio (采集工作站): http://www.gdtsearch.com/products.spiderstudio.htm
1. 打開Spider Studio, 加載頁面 http://www.utilities-online.info/xmltojson/
2. 通過選擇頁面元素功能找到xml和json兩個輸入框以及兩個相互轉換的按鈕, 他們的ID分別為: #json, #xml, #tojson, #toxml.
3. 編寫腳本自動完成頁面操作:
public void Run() { Logger.ClearAll(); Logger.Log(Xml2Json("<person><name>Mike</name><age>30</age></person>")); Logger.Log(Json2Xml("{'person':{'name':'Mike', 'age':30}}")); } public string Xml2Json(string xml) { lock(this) { Default.Navigate("http://www.utilities-online.info/xmltojson"); Default.Ready(); Default.SelectSingleNode("#xml").Text(xml); Default.SelectSingleNode("#tojson").Click(); var json = Default.SelectSingleNode("#json").Text(); return json; } } public string Json2Xml(string json) { lock(this) { Default.Navigate("http://www.utilities-online.info/xmltojson"); Default.Ready(); Default.SelectSingleNode("#json").Text(json); Default.SelectSingleNode("#toxml").Click(); var xml = Default.SelectSingleNode("#xml").Text(); return xml; } }
測試效果:
4. 通過一點小技巧提高性能
經過觀察發現這個網站打開比較慢, 但是一旦打開之後, 處理轉換還是挺快的. 因此我決定只在最 開始打開一次, 之後直接調用轉換功能就成了.
將代碼
Default.Navigate("http://www.utilities-online.info/xmltojson");
Default.Ready();
改成
if(Default.Url.ToString() != "http://www.utilities-online.info/xmltojson/")
{
Default.Navigate("http://www.utilities-online.info/xmltojson");
Default.Ready();
}
即可, 測試發現原來需要4s的加載過程現在秒出了 :)
5. 將腳本編譯成DLL
6. 創建WinForm程序, 引入DLL
7. 運行起來的效果
查看本欄目