国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Json數據中的特殊字符處理

2019-11-14 13:54:08
字體:
來源:轉載
供稿:網友

今天在項目中遇到一個問題,頁面上的數據突然顯示不出來了,查驗后得知是Json數據出現了問題。使用JSON從后臺向前臺傳輸數據的時候,當數據本身含有一些特殊字符,會導致JSON數據的解析出錯。如果內容中本身就包含了 "/"" 雙引號、"/r/n" 回車換行這時候,數據的解析就會出現問題。

/r,/n,/r/n的區別

/n是換行,英文是New line,表示使光標到行首/r是回車,英文是Carriage return,表示使光標下移一格/r/n表示回車換行

 

"/r/n"與"</br>"的區別 

/r/n是輸出的HTML代碼換行(查看html代碼時,代碼換行了)<br />輸出給瀏覽器換行(看網頁效果時,文字換行了)

 

用戶在Textarea輸入內容時,有時候會輸入雙引號,回車或者換行符,保存時,這些特殊符號也也文本內容一起保存到數據庫里去了,當獲取這些數據時,Json的解析就會出錯

下面是有問題數據:

{"employees": [{ "firstName":"Bill" , "lastName":"Gates”" },{ "firstName":"George回車了" , "lastName":"Bush" },{ "firstName":"Thomas" , "lastName":"Carter" }]}

  

不改動數據數據,怎樣才能把數據傳到頁面上去呢。思路是后端把 /r/n(回車)轉成<br/>再,前端再把<br/>轉回 /r/n

C# 代碼:

1 public static string EncodeTextareaChar(string str)2         {3             if (str == null) return null;4             return str.Replace("/"", "///"").Replace("/r/n", "<br/>").Replace("/n", "<br/>").Replace("/r", "<br/>");5         }

 

javascript代碼

1 function encodeTextarea(str) {2         str = str.replace(/&lt;/g, "<").replace(/&gt;/g,">");3         var str = str.replace(/<br//>/g, "/r/n");4         return str;5     }

 

兩種語言都有 replace() 方法,他們也略微有些區別,

Javascript的 replace 只替換一次,如"abcaebacd"中有兩個c,它只替換第一個,replace("c","s"),結果是"absaebacd"

C#的replace替換全部,replace("c","s"),結果是"absaebasd"

 

注:Javascript 要想實現全部替換,可以 replace(/c/g,"s"), / /之間是要替換的內容,g為全局標志

為什么要加這一個呢?str.replace(/&lt;/g, "<").replace(/&gt;/g,">");因為后端傳過來的    <br/>    變成了 &lt;br/&gt;

  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 张北县| 盐源县| 永康市| 丹巴县| 南和县| 济源市| 绥滨县| 阜康市| 泸西县| 通化县| 北海市| 瓮安县| 碌曲县| 镇巴县| 澄城县| 南漳县| 隆德县| 黄陵县| 托克托县| 德化县| 温宿县| 湘阴县| 五台县| 封丘县| 米脂县| 宁陕县| 麻阳| 古田县| 吉隆县| 开封市| 南部县| 南溪县| 永福县| 进贤县| 汉中市| 永和县| 孙吴县| 林周县| 喜德县| 海口市| 东乡族自治县|