json字符串中存在常規的用戶輸入的字符串,和很多的富文本樣式標簽(用戶不能直接看到,點擊富文本編輯器中的html源碼按鈕能看到),例如下面的:
<p><strong>富文本<>sad<span>adzx我是用戶輸入</strong></p>
<p><span><span style="font-family:微軟雅黑, 'microsoft yahei';">富文本<>sad<span>adzx我是用戶輸入</span><br /></span></p>
例如存在這種情況,需要把上面的這段字符串通過一個json格式,post到服務器端,假設這段字符串被賦給變量a :
post的參數的結構是這樣的:
{ "params": { "content": a }}
有個前提是,往后端post的文本內容,是需要包含富文本樣式的,這也就是為什么要使用富文本編輯器的目的。
可以注意到,上面的字符串中,黑色加粗部分,富文本編輯器會自動進行encodeHTML操作,也就是常規的用戶輸入的字符串,而紅色細字部分是屬於富文本樣式標簽部分。
樣例中,富文本區域包含:<span style="font-family:微軟雅黑, 'microsoft yahei';">這種字符串,由於采用的json格式向后端post數據,所以需要注意轉義這里面的雙引號",否則會引起后端解析json出錯,所以做了一下轉義,把單個雙引號變成了 \\\" 這種形式(因為還涉及到encodeURI和decodeURI的操作)。
同時,用戶也可能會輸入單個的或多個的\反斜杠(轉義符),所以又對它做了同樣的轉義處理,把單個的反斜杠,變成了 \\\\ 這種形式。
歸根到底是采用了json這種方式來向服務器post大量的數據(富文本數據),所以涉及到雙引號和反斜杠這兩個特殊字符的處理。
