JSON是一種常用的數(shù)據(jù)格式,在前后端交互中起到了重要的作用。但是有時候我們需要將JSON轉(zhuǎn)義,這樣才能在網(wǎng)頁上正常顯示。
JSON的轉(zhuǎn)義實際上是將一些特殊字符轉(zhuǎn)換為它們的轉(zhuǎn)義字符。以下是一些常用的轉(zhuǎn)義字符:
" -> " ' -> ' \ -> \\ / -> \/ \b -> \b \f -> \f \n -> \n \r -> \r \t -> \t
在JS中可以使用JSON.stringify()方法來將JS對象轉(zhuǎn)換為JSON字符串,并自動對一些特殊字符進(jìn)行轉(zhuǎn)義。例如:
const obj = { name: "John", age: 25, message: "Hello, \"World\"!" }; const jsonStr = JSON.stringify(obj); console.log(jsonStr); // {"name":"John","age":25,"message":"Hello, \"World\"!"}
如果我們需要手動將特殊字符轉(zhuǎn)義,可以使用正則表達(dá)式來進(jìn)行替換。例如:
const str = 'Hello, "World"!'; const escapedStr = str.replace(/["'\\\b\f\n\r\t]/g, function (match) { switch (match) { case '"': return '\\"'; case "'": return '''; case '\\': return '\\\\'; case '\b': return '\\b'; case '\f': return '\\f'; case '\n': return '\\n'; case '\r': return '\\r'; case '\t': return '\\t'; } }); console.log(escapedStr); // Hello, "World"!
在HTML中如果需要顯示JSON字符串,需要將其中的特殊字符進(jìn)行轉(zhuǎn)義。可以使用一些庫(如jQuery)提供的方法,也可以手動使用正則表達(dá)式進(jìn)行替換。例如:
const jsonStr = '{"name":"John","age":25,"message":"Hello, \\"World\\"!"}'; const escapedJsonStr = jsonStr.replace(/[<>&]/g, function (match) { switch (match) { case '<': return '<'; case '>': return '>'; case '&': return '&'; } }); const html = '<pre>' + escapedJsonStr + '</pre>'; document.body.innerHTML = html;
上一篇css背景移動動畫效果圖
下一篇css背景離右邊15像素