Discuz过滤JSON特殊字符的方法
2011-08-21 00:00
585 查看
在使用JSON的时候,有些特殊字符会让我们等不到预期的结果。下面的过滤方法用的是Discuz中的过滤方法,可以很好地帮我们解决这一问题。先是处理这问题的js代码,再附上前端使用代码。
前台代码:
/// <summary> /// 加载事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { if(!IsPostBack) { FileStream fsSteam = new FileStream(Server.MapPath("~/SQLLog.txt"), FileMode.Open); //SQLLog.txt 里面的文本为:今天真n\nb\\\的很"高兴"! StreamReader sr = new StreamReader(fsSteam,System.Text.Encoding.GetEncoding("gb2312")); string message = JsonCharFilter(sr.ReadToEnd()); // 这里需要过滤一下,以保证JSON解析后显示的值与SQLLog.txt中的一模一样。 sr.Close(); fsSteam.Dispose(); string json = "{ IfSuccess : true, Message : '" + message + "' }"; this.ltMessage.Text = json; } } /// <summary> /// Json特符字符过滤,参见http://www.json.org/ /// </summary> /// <param name="sourceStr">要过滤的源字符串</param> /// <returns>返回过滤的字符串</returns> public static string JsonCharFilter(string sourceStr) { sourceStr = sourceStr.Replace("\", "\\"); sourceStr = sourceStr.Replace("b", "\b"); sourceStr = sourceStr.Replace("t", "\t"); sourceStr = sourceStr.Replace("n", "\n"); sourceStr = sourceStr.Replace("n", "\n"); sourceStr = sourceStr.Replace("f", "\f"); sourceStr = sourceStr.Replace("r", "\r"); return sourceStr.Replace(""", "\""); }
前台代码:
<html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:Literal ID="ltCurrentMessage" runat="server" /> </div> <div id="divMessage"><asp:Literal ID="ltMessage" runat="server" /></div> <div> <asp:Button ID="btnSubmit" runat="server" Text="提交" OnClick="btnSubmit_Click" /> </div> </form> <script language="javascript" type="text/javascript"> ///<summary>用正则表达式将前后空格,用空字符串替代。</summary> String.prototype.trim = function() { return this.replace(/(^s*)|(s*$)/g, ""); } var jsonStr = document.getElementById("divMessage").innerHTML.trim(); var jsonObj = eval("(" + jsonStr + ")"); alert(jsonObj.IfSuccess); alert(jsonObj.Message); </script> </body> </html>
相关文章推荐
- 防御SQL注入方法(2)-过滤特殊字符
- OC 在NSJSONSerialization 过滤JSON解析不了的掉特殊字符
- 过滤sql特殊字符方法集合
- android中edittext特殊字符过滤和字符长度限制的最优方法
- PHP 对特殊字符进行安全过滤的方法与代码示例
- 过滤导致json.parse出现SyntaxError的特殊字符
- 关于 android 中 edittext 特殊字符过滤和字符长度限制的最优方法
- 过滤sql特殊字符方法集合
- 含有特殊字符的JSON串解析方法
- JSON格式的特殊字符处理(只要一个方法解决)
- Datatable转Json,并过滤特殊字符
- C# 过滤sql特殊字符方法集合
- jquery过滤特殊字符',防sql注入的实现方法
- 关于input自动过滤特殊字符的简单方法
- js过滤JSON中特殊字符
- jquery validate 增加过滤特殊字符的方法
- 过滤JSON中的特殊字符
- jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法
- 过滤sql特殊字符方法集合
- jquery validate 增加过滤特殊字符的方法