.NET中JSON序列化(数据集转JSON)

Json序列化和反序列化指的是:对象序列化为JSON,并可用于从 JSON 反序列化对象

 .net 3.5中已支持JSON,引用命名空间:

using System.Web.Script.Serialization;

用其中:JavaScriptSerializer类进行操作,

public string ToJson(object o)

{

  JavaScriptSerializer servializer = new JavaScriptSerializer();

    return servializer.Serialize(o);

 }

 

json.ashx处理页面中,Code

class tempclass

    {

        private string _IP;

 

        public string IP

        {

            get { return _IP; }

            set { _IP = value; }

        }

        private string _country;

 

        public string Country1

        {

            get { return _country; }

            set { _country = value; }

        }

        private string _city;

 

        public string City1

        {

            get { return _city; }

            set { _city = value; }

        }

}

 

把数据库中数据至泛型集合中。。。。

List<tempclass> templist = new List<tempclass>();

                foreach (DataRow item in ds.Tables[0].Rows)

                {

                    templist.Add(new tempclass()

                    {

                        IP = item["IP4"].ToString(),

                        Country1 = item["country"].ToString(),

                        City1 = item["city"].ToString()

                    });

                }

 

System.Text.StringBuilder sb = new System.Text.StringBuilder();

   sb.Append("{");

   sb.Append("totalCount:");

   sb.Append(totalCount.ToString());

   sb.Append(",data:");

   sb.Append(ToJson(templist)); //序列化从数据库中读取的数据集

   sb.Append("}");

   context.Response.ContentType = "text/plain";

   context.Response.Write(sb.ToString());

   context.Response.End();

 

 或者用LinQ获取数据源就更为简单了:

var dslinq = from p in dss.Tables[0].AsEnumerable()

                             select new {

                               IP = p.Field<string>("IP4"),

                               country = p.Field<string>("country"),

                              city = p.Field<string>("city")

                 };

 

接下来就是客户端读取json数据并显示,这是用jQuery$.ajax实现:

 $(document).ready(function(){

   $.ajax({

     type:"POST",

     dataType:"json",

     url:"/json.ashx",

     success:function(msg){

       $.each(msg.data,function(i,item){

         $("<tr class=‘newrow‘></tr>").append("<td>" + item.IP + "</td>" +

                 "<td>" + item.country + "</td>" +

                 "<td>" + item.city + "</td>").appendTo($("#List tbody"));

                });

              }

           }); 

显示结果如下:

 });

 

 

 

.NET中JSON序列化(数据集转JSON),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。