ASP.NET Hashtable輸出JSON格式數據

最近在開發Windows8 Metro App,使用JavaScript和HTML開發環境。因此操做數據綁定都是使用JSON格式數據。後臺使用的是ASP.NET,由於項目相對較小,全部後臺沒有使用數據庫,使用的XML來保存數據。前臺須要請求後臺返回JSON格式的數據,好比要求返回一個eventslist,後臺操做XML的方法省略。主要討論如何使用Hashtable和ArrayList,而後加上ASP.NET自帶的JavaScriptSerializer來生成JSON數據,而後返回給前端使用。固然目前微軟的ASP.MVC和ASP.NET Web API在處理JSON格式數據有很大的改進,特別是前端使用Ajax方式post一個json數據給服務器端,後臺反序列化一個對象,就能夠方便實現後臺的相關業務邏輯。html

代碼以下:前端

ArrayList eventList = new ArrayList();
            
            for (int i = 0; i < 3;i++ )
            {
                Hashtable ht = new Hashtable();
                ht.Add("eventid",i+1);
                ht.Add("eventname","聖誕節");
                ht.Add("eventdate","2012-12-25");
                ht.Add("eventlocation","公司會議中心");
                eventList.Add(ht);
            }
            JavaScriptSerializer ser = new JavaScriptSerializer();
            String jsonStr=ser.Serialize(eventList);
            Response.Write(jsonStr);
 
 

查看頁面,能夠看到返回的結果是JSON格式的數據。其實是一個數組,數組裏面每項是一個json對象。web

[{"eventdate":"2012-12-25","eventlocation":"公司會議中心","eventname":"聖誕節","eventid":1},{"eventdate":"2012-12-25","eventlocation":"公司會議中心","eventname":"聖誕節","eventid":2},{"eventdate":"2012-12-25","eventlocation":"公司會議中心","eventname":"聖誕節","eventid":3}]

咱們能夠經過這個網址驗證生成的json是否正確。http://jsonlint.com/數據庫

可是咱們須要注意的是,hashtable在存放數據時是無序的,因此數據並非按照咱們插入的前後順序顯示的。咱們可能指望的數據格式是:json

{"eventid":1","eventname":"聖誕節",eventdate":"2012-12-25","eventlocation":"公司會議中心"}數組

可是咱們查看咱們的結果不是這樣的,可是數據返回給前端以後,仍是要經過JSON.parse()方法轉換爲json對象,因此不按照特定的順序,對咱們開發不影響。服務器

數據在HTTP協議上傳輸都是使用二級制流,因此數據到達客戶端,須要經過JSON.parse()。個人項目是Windows8 Metro App,固然也能夠是網頁或者web 應用。post

固然若是前端和後臺的數據模型一致,還能夠直接經過對象實例直接序列化一個json格式數據。spa

相關文章
相關標籤/搜索