日期:2014-05-17  浏览次数:20436 次

后台ashx返回的list在前台使用Jquery反序列化
后台ashx返回的list在前台使用Jquery如何反序列化并展示在前台呢。
我要在后台查询数据库,并将得到的DataTable转换为List,然后序列化为JSON数据返回给前台。

还有,有方法可以直接将datatable转换为JSON数据吗?我用的是JavaScriptSerialized类,不能直接将datatable序列化为JSON数据。有什么第三方的插件可以实现吗?

------解决方案--------------------
可以将DataTable转换为List集合 然后序列化json返回给前台

List<Person> pList = new List<Person>();
Person  p = null;
foreach(DataRow row in DataTable1.Rows){
  p = new Person();
  p.ID = Convert.ToInt32(row["ID"]);
  p.Name = row["Name"].ToString();
  pList.Add(p);
}

JavaScriptSerializer jss = new JavaScriptSerializer();
string jsonArr = jss.Serialize(pList);
context.Response.Write(jsonArr);


public class Person{
public int ID{get;set;}
public string Name{get;set;}
}

------解决方案--------------------

$.ajax({
        url: "../Handler/TestHandler.ashx",
        async: true,
        success: function (data, status) {
            if (status == "success") {
                var json = $.parseJSON(data);
                //遍历json
            }
        }
    });