【出错状况】
从数据库中返回json格式的数据,但由于数据库中的数据中有换行符,导致返回的json数据错误。
在使用JS控制点击之后效果的时候,有些不能点击,最后发现是换行符的问题,将换行符去掉之后一切正常。
【原因分析】
用for循环语句来分析出错字段字符串中每个字符的ASCII码,可以看出存在值分别为13、10的两个字符,造成换行,导致json格式出错。
【解决方法】
用C#中string的replace函数替换掉这两个字符,下面是部分代码供参考。
jsonStr.Append("'subject':'" +cleanString(rd.GetString(1)) + "',");
jsonStr.Append("'answer':'" + cleanString(rd.GetString(2)) + "',");
private string cleanString(string newStr)
{
string tempStr = newStr.Replace((char)13, (char)0);
return tempStr.Replace((char)10, (char)0);
}
jsonStr.Append("'answer':'" + cleanString(rd.GetString(2)) + "',");
private string cleanString(string newStr)
{
string tempStr = newStr.Replace((char)13, (char)0);
return tempStr.Replace((char)10, (char)0);
}