將去年一連三篇有關使用新北市政府公開資料所做的範例給放在 GitHub 上,
ASP.NET MVC 使用政府公開資料 Part.2 - 增加條件過濾
ASP.NET MVC 使用政府公開資料 Part.3 - 資料分頁 使用 PagedList 的 StaticPagedList
這個範例主要是在說明如何在 ASP.NET MVC 的網站裡使用其他服務所提供的 JSON 資料,然後將接收的資料轉換為物件,並且在頁面上以分頁的方式顯示,再加入搜尋條件以方便對資料做查詢,最後則是藉由這一個範例說明 PagedList.Mvc 的 StaticPagedList 功能。
除了前面所講的之外,範例的內容還包含了如何將接收到並轉換完成的資料使用 System.Runtime.Caching 的 ObjectCache,而非再使用舊有的 System.Web.Caching,但是這次公開在 GitHub 的範例程式除了原本文章裡所用的程式之外,也提供了另外一個分頁做法,就是使用 FormMethod.Post 的方式,這個做法是直接參考前一篇文章的實作內容再加以修改。
再來就是原本是使用 Json.Net 來處理 JSON 資料的反序列化,不過最近在嘗試其他的 JSON Serializer,從 Jil, NetJSON, fastJSON 等都有試過,最後選擇用「ServiceStack.Text」來取代,而實際測試的結果也真的比 Json.Net 快了一倍的時間(不過在這個範例所記錄到的時間是 17ms 與 8ms 的差別)。
ServiceStack.Text
https://github.com/ServiceStack/ServiceStack.Text
實際使用的程式差異
執行時的時間記錄
使用 ServiceStack.Text
使用 Json.Net
有關各種 JSON Serializer 的速度比較,可以參考以下的相關連結,不過速度不是選擇使用的優先考量重點,穩定與支援度才是重點,這需要每一種 JSON Serializer 使用並測試後才能夠決定你的專案是要使用哪一種,
Benchmarks | theburningmonk.com
JSON serializers benchmarks updated | theburningmonk.com
Quick JSON serializer performance test (Json.NET vs ServiceStack) - Xamarin Forums
以下圖片內容為「JSON serializers benchmarks updated | theburningmonk.com」此文章內的圖表。
網站執行畫面
GitHub Respository
ASP.NET MVC 使用政府公開資料 - 範例程式(MVC-NewTaipeiCity-OpenData-Sample)
https://github.com/kevintsengtw/MVC-NewTaipeiCity-OpenData-Sample
以上
Kevin 大:
回覆刪除打擾您。
RetriveHotSpotData 的 Retrive,少了個 e => Retrieve。 :)
原來我一直都打錯這個字... Orz
刪除感謝阿砮提醒。