黑马程序员---序列化你知多少

来源:互联网 发布:淘宝负面评价怎么办 编辑:程序博客网 时间:2024/05/04 12:17

        ---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------  

如果是在VS2005中,我们必须要下载一个序列化组件,因为此时的vs2005还没有自带序列化,直到VS2008、VS2010的发布,VS才开始自带加入了序列化的组建,我们可以很方便的来处理数据。而对应用来处理序列化,那就是反序列化,序列化是我们很常用的用来处理数据的一种方式,例如:

         1.在VS2005中,我们必须去下一个组件叫Newtonsoft.Json;,在项目中添加应用之后,我们就可以使用它给我们提供了能够序列化函数。实例代码片段如下:

              DataTable dt = new SqlHelper().ExecuteDataTable(str);
                List<YouKuModel.youku> list = new List<YouKuModel.youku>();
                foreach (DataRow dr in dt.Rows)
                {
                    YouKuModel.youku yk = new YouKuModel.youku();
                    yk.Id = Convert.ToInt32(dr["Id"]);
                    yk.ImgUrl = dr["ImgUrl"].ToString();
                    yk.Content = dr["Content"].ToString();
                    yk.PubDate = (DateTime)dr["PubDate"];
                    list.Add(yk);
                }
                string json = Newtonsoft.Json.JsonConvert.SerializeObject(list);
                Response.Write(json);
                Response.Flush();

                esponse.end();

                 首先序列化的对象要是泛型的数据集合等,它不能序列化Datatable,即使这样我们还是要把它datatable的数据转换成List的泛型集合。

         2.在VS2008或是VS2010中,我们就可以很方便的使用自带的序列化来处理数据,实例代码片段如下:

              var data=adapter.GetPagedData((ipageNum-1)*5+1,(ipageNum)*5);
                List<comment> list=new  List<comment>();
                foreach (var row in data)
                {
                    list.Add(new comment { PostDate = row.PostDate, Msg = row.Msg });
                }
                System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
                string json = js.Serialize(list);
                context.Response.Write(json);

               VS2008和VS2010,虽然他们提供了自带的序列化组件,但是对于序列化的对象,还是与VS2005中要求的一样。

 ----------------------Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
原创粉丝点击