第一步:将DataTable转换成 Json格式的数据
方法 一
View Code
/// <summary>
/// DataTable转成Json格式,方法 一
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string DataTableToJson1(DataTable dt)
{
#region DataTable To Json Method One
//Json集合数据开始
string autoJson1 = "[";
foreach (DataRow dr in dt.Rows)
{
#region 一组数据
//一组数据开始
autoJson1 += "{";
foreach (DataColumn cl in dt.Columns)
{
//一组键值对
autoJson1 += string.Format("\"{0}\":\"{1}\",", cl.ColumnName, dr[cl.ColumnName]);
}
//去掉最后一对键值后面的 逗号 “,”
autoJson1 = autoJson1.Substring(0, autoJson1.Length - 1);
//一组数据结束
autoJson1 += "},";
#endregion
}
//去掉最后一组数据后面的 逗号 “,”
autoJson1 = autoJson1.Substring(0, autoJson1.Length - 1);
//Json集合数据结束
autoJson1 += "]";
#endregion
return autoJson1;
}
方法二
View Code
/// <summary>
/// DataTable转成Json格式,方法 二
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string DataTableToJson2(DataTable dt)
{
#region DataTable To Json Method Two
//Json集合数据开始
string autoJson2 = "[";
int rowCount2 = dt.Rows.Count;//数据组数量
int columnCount2 = dt.Columns.Count;//键值对数量
int row2 = 0;
foreach (DataRow dr in dt.Rows)
{
row2++;
#region 一组数据
//一组数据开始
autoJson2 += "{";
int column2 = 0;
foreach (DataColumn cl in dt.Columns)
{
column2++;
//一组键值对
autoJson2 += string.Format("\"{0}\":\"{1}\"", cl.ColumnName, dr[cl.ColumnName]);
//若不是最后一组键值对,则加逗号以与下一组键值对隔开
if (column2 != columnCount2)
autoJson2 += ",";
}
//一组数据结束
autoJson2 += "}";
#endregion
//若不是最后一组数据,则加逗号以与下一组数据隔开
if (row2 != rowCount2)
autoJson2 += ",";
}
//Json集合数据结束
autoJson2 += "]";
#endregion
return autoJson2;
}
方法三
View Code
/// <summary>
/// DataTable转成Json格式,方法 三
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public string DataTableToJson3(DataTable dt)
{
#region DataTable To Json Method Three
//Json集合数据开始
string autoJson3 = "[";
int rowCount3 = dt.Rows.Count;
int columnCount3 = dt.Columns.Count;
int row3 = 0;
for (int r = 0; r < dt.Rows.Count; r++)
{
row3++;
#region 一组数据
//一组数据开始
autoJson3 += "{";
int column3 = 0;
for (int c = 0; c < dt.Columns.Count; c++)
{
column3++;
//一组键值对
autoJson3 += string.Format("\"{0}\":\"{1}\"", dt.Columns[c].ColumnName, dt.Rows[r][c]);
//若不是最后一组键值对,则加逗号以与下一组键值对隔开
if (column3 != columnCount3)
autoJson3 += ",";
}
//一组数据结束
autoJson3 += "}";
#endregion
//若不是最后一组数据,则加逗号以与下一组数据隔开
if (row3 != rowCount3)
autoJson3 += ",";
}
//Json集合数据结束
autoJson3 += "]";
#endregion
return autoJson3;
}
第二步:Eg,返回的字符串数据格式
var backString=
[{"id":"74","xmlname":"constellation","nodeid":"other_2","username":"Anyone","userfaceurl":"http://t2.baidu.com /it/u=2152954466,1933595111","commentcontent":"很好很准 确。","addtime":"2012-8-8 14:23:56"},{"id":"73","xmlname":"constellation","nodeid":"other_2","username":"Anyone","userfaceurl":"http://t2.baidu.com/it/u=2152954466,1933595111","commentcontent":"3324","addtime":"2012-8-8 14:21:56"},{"id":"72","xmlname":"constellation","nodeid":"other_2","username":"Anyone","userfaceurl":"http://t2.baidu.com/it/u=2152954466,1933595111","commentcontent":"rwe","addtime":"2012-8-8 14:21:55"}]
第三步:用eval方法将字符串转换成Json格式数据
var jsonData = eval(backString);
//遍历jsonData:
for (var i = 0; i < jsonData.length; i++) {
alert(jsonData[i].id);
}