前台页面 复制代码 代码如下: $.ajax({ type: "post", contentType: "application/json", url: "../WebForm1.aspx/GetRightsStr", dataType: "json", success: function (msg) { alert(msg.d); var data = eval("(" + msg.d + ")"); $.each(data.rights, function (index, item) { alert(item.RightsName); }); }, error: function (e, s, d) { alert(e); alert(s); alert(d); } }); 后台方法: 复制代码 代码如下: /// <summary> /// DataTable转成Json /// </summary> /// <param name="jsonName">josn名称</param> /// <param name="dt">要转换的数据集</param> /// <returns></returns> public static string DataTableToJson(string jsonName, DataTable dt) { StringBuilder Json = new StringBuilder(); Json.Append("{"" + jsonName + "":["); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { Json.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { Json.Append(""" + dt.Columns[j].ColumnName.ToString() + "":"" + dt.Rows[i][j].ToString() + """); if (j < dt.Columns.Count - 1) { Json.Append(","); } } Json.Append("}"); if (i < dt.Rows.Count - 1) { Json.Append(","); } } } Json.Append("]}"); return Json.ToString(); } 这个方法是一个将DataTable转换成字符串的方法 。今天遇到的问题是 在 var data = eval("(" + msg.d + ")"); 出错误 提示 是 缺少 } 这个方法有用了很多次了 不知道为什么出现这样的错误 。 找了半天,才发现 是数据的问题 在返回的字符串里 有 ""这个字符, ""具有转义的作用 所有会出现这个错误,晕啊,真实害苦我了 ,希望大家不要像我这样糊涂。
推荐阅读
javascript实现网站顶部出现几秒后图片缓慢消失的效果
脚本之家 www.jb51.net
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]>>>详细阅读
本文标题:jqeury eval将字符串转换json的方法
地址:http://www.17bianji.com/kaifa2/JS/24969.html
1/2 1