您的位置:首页 > Web前端 > JavaScript

JSON中的特殊字符

2015-07-20 16:12 495 查看
使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错。这个时候,就需要将JSON中的特殊字符过滤掉。

用下面的方法对即将向前台输出的json字符串进行处理,可以解决键盘上能输入的所有特殊字符问题

/**//// <summary>
/// 过滤特殊字符
/// </summary>
/// <param name="s"></param>
/// <returns></returns>
private static string String2Json(String s)
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.Length; i++)
{
char c = s.ToCharArray()[i];
switch (c)
{
case '\"':
sb.Append("\\\""); break;
case '\\':
sb.Append("\\\\"); break;
case '/':
sb.Append("\\/"); break;
case '\b':
sb.Append("\\b"); break;
case '\f':
sb.Append("\\f"); break;
case '\n':
sb.Append("\\n"); break;
case '\r':
sb.Append("\\r"); break;
case '\t':
sb.Append("\\t"); break;
default:
if ((c >= 0 && c <= 31)||c ==127)//在ASCⅡ码中,第0~31号及第127号(共33个)是控制字符或通讯专用字符
{

}
else
{
sb.Append(c);
}
break;
}
}
return sb.ToString();
}


/// <summary>

///   替换部分字符串

/// </summary>

/// <param name="sPassed">需要替换的字符串</param>

/// <returns></returns>

private static string ReplaceString(string sContent)

{

if (sContent == null) { return sContent; }

if (sContent.Contains("\\"))

{

sContent = sContent.Replace("\\", "\\\\");

}

if (sContent.Contains("\'"))

{

sContent = sContent.Replace("\'", "\\\'");

}

if (sContent.Contains("\""))

{

sContent = sContent.Replace("\"", "\\\"");

}

//去掉字符串的回车换行符

sContent = Regex.Replace(sContent, @"[\n\r]", "");

sContent = sContent.Trim();

return sContent;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: