JSON是一種常用的數(shù)據(jù)交換格式,但在使用中會遇到一些特殊字符需要進行轉(zhuǎn)義,其中就包括Unicode編碼。
\uXXXX
其中XXXX是4位16進制數(shù),表示Unicode編碼對應(yīng)的字符。
在JavaScript中,可以使用escape函數(shù)將Unicode編碼進行轉(zhuǎn)義:
let str = 'Hello 你好!'; let encodedStr = escape(str); console.log(encodedStr); // 輸出:Hello%20%u4F60%u597D%21
但是在實際使用中,我們更多地傾向于使用JSON.stringify函數(shù)將JSON數(shù)據(jù)轉(zhuǎn)換為字符串,同時避免進行手動轉(zhuǎn)義的問題:
let data = { name: '張三', age: 18 }; let jsonString = JSON.stringify(data); console.log(jsonString); // 輸出:{"name":"\u5F20\u4E09","age":18}
在解析JSON字符串時,同樣可以使用JSON.parse函數(shù)將轉(zhuǎn)義的Unicode編碼還原為字符:
let jsonStr = '{"name":"\\u5F20\\u4E09","age":18}'; let decodedObj = JSON.parse(jsonStr); console.log(decodedObj.name); // 輸出:張三
需要注意的是,在使用JSON.parse函數(shù)解析JSON字符串時,需要保證JSON格式的正確性,否則會拋出異常。
let invalidJsonStr = '{"name":"張三","age":}'; try { JSON.parse(invalidJsonStr); } catch(error) { console.log(error); // 輸出:Unexpected end of JSON input }
上一篇CSS:裁剪框陰影
下一篇無法更改材料UI表格填充