我有一个 ASP.Net Web 处理程序,它以 JSON 格式返回查询结果
public static String dt2JSON(DataTable dt)
{
String s = "{\"rows\":[";
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
s += "{";
for (int i = 0; i < dr.Table.Columns.Count; i++)
{
s += "\"" + dr.Table.Columns[i].ToString() + "\":\"" + dr[i].ToString() + "\",";
}
s = s.Remove(s.Length - 1, 1);
s += "},";
}
s = s.Remove(s.Length - 1, 1);
}
s += "]}";
return s;
}
问题是,有时返回的数据中包含引号,我需要对它们进行 javascript 转义,以便可以将其正确创建到 js 对象中。我需要一种方法来查找数据中的引号(引号并非每次都存在)并在它们前面放置一个“/”字符。
响应文本示例(错误):
{"rows":[{"id":"ABC123","length":"5""},
{"id":"DEF456","length":"1.35""},
{"id":"HIJ789","length":"36.25""}]}
我需要逃避 " 所以我的回应应该是:
{"rows":[{"id":"ABC123","length":"5\""},
{"id":"DEF456","length":"1.35\""},
{"id":"HIJ789","length":"36.25\""}]}
另外,我对 C# 还很陌生(实际上是一般编码),所以如果我的代码中的其他内容看起来很愚蠢,请告诉我。