泛型list序列化遇到的转义字符js无法识别

yaotomo 2016-02-24 02:23:05

List<ReportInfo> list = from s in context.tb_reporti select s;
JavaScriptSerializer serializer = new JavaScriptSerializer ();
string json = serializer.Serialize(list);
ViewBag.json = json;


序列化后的json字符串是经过转义的,双引号"被转义为"
前台JS中从ViewBag中取出json字符串后识别不了

在后台Action中使用HttpUtility.UrlEncode(),再在前台使用decodeURI()也不行
使用$.parseJSON()和eval(),JSON.parse()也不行

replace('"',':')还是不管用
不知道应该怎么处理呢?我记得以前做CS程序的时候泛型List是不会出现转义的。。
...全文
265 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你是mvc,如果你ajax的话,不会转义,如果是在cshtml里面显示的话,如果不用Html.Raw方法,那么为了安全,mvc会进行转义,Raw方法才会原文输出
yaotomo 2016-02-24
  • 打赏
  • 举报
回复
知道怎么弄了,JS的replace函数第一个参数是正则表达式,我以为是要替换的字符,所以一直替换不成功
yaotomo 2016-02-24
  • 打赏
  • 举报
回复
引用 5 楼 dp517849241 的回复:
你的ajax 的dataType返回类型是否是json dataType: "json",
没有用ajax,用的jqwidgets这个jQuery插件,其中一个参数datatype是json。
yaotomo 2016-02-24
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
URL你应该知道是网址啊,你那个转义符是HTML的啊,你要用html开头的那个
后台用HttpUtility.HtmlEncode(str); 来编码,前台怎么解码呢
dp517849241 2016-02-24
  • 打赏
  • 举报
回复
你的ajax 的dataType返回类型是否是json dataType: "json",
yaotomo 2016-02-24
  • 打赏
  • 举报
回复
引用 3 楼 yaotomo 的回复:
我以前也没用遇见过带转义的JSON字符串 但是以前做的是CS程序,BS我都用的DataTable来序列化的,这次用MVC做的序列化泛型List就出现转义字符了
后台显示是\"其实已经是转义了,到前台alert就变成了"
  • 打赏
  • 举报
回复
URL你应该知道是网址啊,你那个转义符是HTML的啊,你要用html开头的那个
yaotomo 2016-02-24
  • 打赏
  • 举报
回复
我以前也没用遇见过带转义的JSON字符串
但是以前做的是CS程序,BS我都用的DataTable来序列化的,这次用MVC做的序列化泛型List就出现转义字符了

Poopaye 2016-02-24
  • 打赏
  • 举报
回复

并没有什么"

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧