假如你光看標題,你只能哦呵呵了!我也看不懂。還是先描述下問題吧。這里是使用微信接口返回了一些數據。因為該串數據包含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的時候會把單反斜杠\\當成雙反血杠\\\\處理,而字符串則不會。