带双反斜杠的Json数据至单反斜杠的Json数据处理

zhpchen 2015-12-14

假如你光看标题,你只能哦呵呵了!我也看不懂。还是先描述下问题吧。这里是使用微信接口返回了一些数据。因为该串数据包含html标签所以TX是对该串数据进行了编码的。所有的数据是通过Unicode编码的,然后在kindeditor编辑器中中文就变成了\u000a\u0009\u000a\u0009等一些鸟文。

在C#当中自然就变成了\\u000a\\u0009\\u000a\\u0009,通过ASP.NET MVC 的返回JSON的方法: return Json(new { rows = 对象数组 });将带该数据的对象转化为Json后就成了\\\\u000a\\\\u0009\\\\u000a\\\\u0009。

第一次,我想要通过前端JS调用replace函数来处理。str.replace(/\\\\/g,'\\');总之各种各样的都试过了,都用不了。
第二次,通过后台处理一开始直接处理对象属性,也是行不通。原因是\\u000a本身就是一个反斜杠,替换之后还会是\\u000a。

最后把先把obj序列化为字符串,然后通过result = result.Replace(@"\\", @"\"); 将双反斜杠处理为单数据从\\\\u000a\\\\u0009变成了\\u000a\\u0009。最后再调用return Json(new { rows = 字符串 });
两者不是跟之前的一样?NO,有一点还是不一样的,就是rows的值从对象变成了字符串。这说明C#在将对象转化为Json的时候会把单反斜杠\\当成双反血杠\\\\处理,而字符串则不会。

相关推荐