json数据中包含html代码的解决方法

今天在公司做程序,发现有个异步请求,数据什么的都返回正常的,但是就是不进入ajax的success方法,甚是蛋疼,后来找了很久,说是json数据中包含html代码, html标签会破坏json数据格式。后来找了下相关的转义代码,总结下。 [code lang="CSharp"] public class JsonHelper { /// <summary> /// 。net对象序列化为Json对象 /// </summary> /// <typeparam name="T">。net对象类型</typeparam> /// <param name="obj">需要序列化的。net对象</param> /// <returns>Json对象</returns> public static string ToJson<T>(T obj) { System.Web.Script.Serialization.JavaScriptSerializer script = new System.Web.Script.Serialization.JavaScriptSerializer(); return script.Serialize(obj); } /// <summary> /// 反序列化Json对象 /// </summary> /// <typeparam name="T">需要转换成的对象</typeparam> /// <param name="sJson">Json串</param> /// <returns>。net对象</returns> public static T Deserialize<T>(string sJson) where T : class { System.Web.Script.Serialization.JavaScriptSerializer script = new System.Web.Script.Serialization.JavaScriptSerializer(); return script.Deserialize<T>(sJson); } /// <summary> /// List数组对象序列化 /// </summary> /// <typeparam name="T">对象类型</typeparam> /// <param name="obj">List对象值</param> /// <returns>Json串</returns> public static String ToString<T>(List<T> obj) { string str = string.Empty; foreach (object o in obj) { str = str + o.ToString() + "\r\n"; } return str; } // 将datatable转换为json public static string Dtb2Json(DataTable dtb) { System.Web.Script.Serialization.JavaScriptSerializer jss = new System.Web.Script.Serialization.JavaScriptSerializer(); System.Collections.ArrayList dic = new System.Collections.ArrayList(); foreach (DataRow dr in dtb.Rows) { System.Collections.Generic.Dictionary<string, object> drow = new System.Collections.Generic.Dictionary<string, object>(); foreach (DataColumn dc in dtb.Columns) { drow.Add(dc.ColumnName, dr[dc.ColumnName]); } dic.Add(drow); } //序列化 return jss.Serialize(dic); } /// <summary> /// Model 转换为Json /// </summary> /// <typeparam name="T">数据类型</typeparam> /// <param name="obj">数据对象</param> /// <returns></returns> public static string ObjectToJson<T>(T o) { StringBuilder Json = new StringBuilder(); T obj = Activator.CreateInstance<T>(); Type type = obj.GetType(); PropertyInfo[] Pi = type.GetProperties(); Json.Append("{"); for (int i = 0; i < Pi.Length; i++) { Json.Append("\"" + Pi[i].Name.ToString() + "\":\"" + ChangeString(StringHelper.SetString(Pi[i].GetValue(o, null))) + "\""); if (i < Pi.Length - 1) { Json.Append(","); } } Json.Append("}"); return Json.ToString(); } /// <summary> /// 把含有html标签的元素进行转换 /// </summary> /// <param name="str"></param> /// <returns></returns> private static string ChangeString(string str) { //str含有HTML标签的文本 str = str.Replace("<", "&lt;"); str = str.Replace(">", "&gt;"); str = str.Replace(" ", "&nbsp;"); str = str.Replace("\n", "<br>"); str = str.Replace("&", "&amp;"); return str; } } [/code]  

转载于:https://www.cnblogs.com/woaic/archive/2012/11/12/3942800.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值