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

相关文章
相关标签/搜索