//code by:博客园-曹永思
第一步:将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);
}
欢迎转载,转载请注明出处,希望帮到更多人。
.net重写URL:http://www.cnblogs.com/yonsy/archive/2012/09/21/2696935.html