过滤JSON中的特殊字符
2011-01-08 12:21 音乐让我说 阅读(3467) 评论(2) 编辑 收藏 举报过滤方法用的是Discuz中的过滤方法!
/// <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\\n\b\\\\\\的很"高兴"! 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>
谢谢浏览!
作者:音乐让我说(音乐让我说 - 博客园)
出处:http://music.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。