フロントページ
$.ajax( {
type: "post"、
contentType: "application/json"、
url: "../WebForm1.aspx/GetRightsStr"、
dataType: "json"、
成功: 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); (s) ;
alert(d);
}
});
コピーcode
コードは次のとおりです。 /// /// DataTable を Json に変換 /// < /summary>
///
/param>
///
変換するデータセット 🎜>/ //
public static string DataTableToJson(string jsonName, DataTable dt)
{
StringBuilder Json = new StringBuilder(); "{" " jsonName "":[");
if (dt.Rows.Count > 0)
{
for (int i = 0; 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("]}"); Json.ToString();
}
このメソッドはDataTableを文字列に変換するメソッドです。今日私が遭遇した問題は var data = eval("(" msg.d ")");
プロンプトがありませんでした。なぜこのような方法が使用されたのかわかりません。エラーが発生しました。
いろいろ調べてみたところ、返された文字列に「"」という文字があり、「"」にはエスケープする機能があり、このエラーが表示されます。私は本当にめまいを感じます。あなたが私のように混乱しないことを願っています。