详谈 Jquery Ajax异步处理Json数据.

2020-05-19 07:27:39易采站长站整理

List<Dictionary<string, string>> _list = new List<Dictionary<string, string>>();
Dictionary<string, string> drow = new Dictionary<string, string>();
drow.Add(“name”, “Wang”);
drow.Add(“age”, “24”);
Dictionary<string, string> drow1 = new Dictionary<string, string>();
drow1.Add(“name”, “Zhang”);
drow1.Add(“age”, “35”);
_list.Add(drow);
_list.Add(drow1);
context.Response.Write(jss.Serialize(_list));
}
public bool IsReusable {
get {
return false;
}
}
}


调试结果如下图 (上面例子是输出了Json形式二的Js数组)



 讲到这里基本概念也讲得差不多了. 这里再讲一个够常碰到的例子就是如何把DataTabel转换成Json格式从而好让前台页面调用.


就是在Handler.ashx写上一个方法 

/// <summary>
/// DataTable转Json
/// </summary>
/// <param name=”dtb”></param>
/// <returns></returns>
private string Dtb2Json(DataTable dtb)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = new ArrayList();
foreach (DataRow row in dtb.Rows)
{
Dictionary<string, object> drow = new Dictionary<string, object>();
foreach (DataColumn col in dtb.Columns)
{
drow.Add(col.ColumnName, row[col.ColumnName]);
}
dic.Add(drow);
}
return jss.Serialize(dic);
}

其实也有把Json格式转换成DataTabel格式,方法如下

/// <summary>
/// Json转DataTable
/// </summary>
/// <param name=”json”></param>
/// <returns></returns>
private DataTable Json2Dtb(string json)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
ArrayList dic = jss.Deserialize<ArrayList>(json);
DataTable dtb = new DataTable();
if (dic.Count > 0)
{
foreach (Dictionary<string, object> drow in dic)
{
if (dtb.Columns.Count == 0)
{
foreach (string key in drow.Keys)
{
dtb.Columns.Add(key, drow[key].GetType());
}
}
DataRow row = dtb.NewRow();
foreach (string key in drow.Keys)
{
row[key] = drow[key];
}
dtb.Rows.Add(row);
}
}
return dtb;
}

我们让返回的Json以表格的形式显示出来
那么前台页面JS如下

$.ajax({
type: “POST”,
url: “Handler.ashx”,
dataType: “json”,
success: function(data){
var table = $(“<table border=’1′></table>”);
for (var i = 0; i < data.length; i++) {
o1 = data[i];
var row = $(“<tr></tr>”);