json数据交换的例了
我打算在我的个人网站中,取消传统的xml与前台传递数据。改用json数据格式
这是我前台的一部分:
这里的taskMenu2这个是我自已定义的javascript类。不用去管它:
下面是。ajax.aspx.cs页面
在DB类中有一个静态方法:
这是我前台的一部分:
var option={
parameters:"",
method:"get",
onSuccess:function(transport){
rp=transport.responseText;
var json=eval('(' +rp+ ')');
for(var i=0;i<json.DataTable.length;i++)
{
taskMenu2.add(new TaskMenuItem(json.DataTable[i].lifecol,"Image/friends.gif","parent.window.frames[1].location.href='Redirect.aspx?id="+json.DataTable[i].id+"'"));
}
},
onFailure:function(transport){
alert(transport.responseText+"数据提交失败,请检查网络或重试。");
}
};
var request=new Ajax.Request("ajax.aspx",option);
parameters:"",
method:"get",
onSuccess:function(transport){
rp=transport.responseText;
var json=eval('(' +rp+ ')');
for(var i=0;i<json.DataTable.length;i++)
{
taskMenu2.add(new TaskMenuItem(json.DataTable[i].lifecol,"Image/friends.gif","parent.window.frames[1].location.href='Redirect.aspx?id="+json.DataTable[i].id+"'"));
}
},
onFailure:function(transport){
alert(transport.responseText+"数据提交失败,请检查网络或重试。");
}
};
var request=new Ajax.Request("ajax.aspx",option);
这里的taskMenu2这个是我自已定义的javascript类。不用去管它:
下面是。ajax.aspx.cs页面
if (!this.IsPostBack)
{
SqlDataReader sdr=SqlHelper.ExecuteReader(CommandType.Text,"select * from readlife",null);
DataTable dt = DB.ConvertDataReaderToDataTable(sdr);
Response.Write(DB.DataTableToJSON(dt));
}
这里用到了一个方法:{
SqlDataReader sdr=SqlHelper.ExecuteReader(CommandType.Text,"select * from readlife",null);
DataTable dt = DB.ConvertDataReaderToDataTable(sdr);
Response.Write(DB.DataTableToJSON(dt));
}
在DB类中有一个静态方法:
public static string DataTableToJSON(DataTable dt)
{
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{\"");
jsonBuilder.Append(dt.TableName);
jsonBuilder.Append("\":[");
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append("\",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]");
jsonBuilder.Append("}");
return jsonBuilder.ToString();
}
{
StringBuilder jsonBuilder = new StringBuilder();
jsonBuilder.Append("{\"");
jsonBuilder.Append(dt.TableName);
jsonBuilder.Append("\":[");
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append("\"");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("\":\"");
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append("\",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]");
jsonBuilder.Append("}");
return jsonBuilder.ToString();
}