JSON是一種跨語言交換數據的格式,而jQuery提供了一種非常方便的方式來處理JSON數據,即使用$.parseJSON()和$.stringify()方法。但是,在使用這些方法時,你可能會遇到JSON數據中含有特殊字符的情況,這時就需要進行轉義了。
var jsonData = { "name": "小明", "age": 18, "sentence": "I'm a \"good\" boy." }; var jsonString = JSON.stringify(jsonData); //將對象轉換為JSON字符串 console.log(jsonString); //輸出結果:{"name":"小明","age":18,"sentence":"I'm a \"good\" boy."} //可以看到,雙引號和單引號都被轉義了。
以上代碼中,字符串“good”的雙引號被加上了反斜杠進行了轉義,這是因為雙引號是JSON字符串中的特殊字符。如果我們不使用轉義,將會導致瀏覽器報錯。現在對JSON字符串進行解析:
var jsonData = { "name": "小明", "age": 18, "sentence": "I'm a \"good\" boy." }; var jsonString = JSON.stringify(jsonData); var jsonObject = $.parseJSON(jsonString); console.log(jsonObject); //輸出結果:{name: "小明", age: 18, sentence: "I'm a "good" boy."} //語法錯誤,因為JSON字符串中雙引號并沒有被正確解析
我們可以通過使用replace方法,將雙引號進行轉義:
var jsonData = { "name": "小明", "age": 18, "sentence": "I'm a \"good\" boy." }; var jsonString = JSON.stringify(jsonData); jsonString = jsonString.replace(/\"/g, "\\\""); var jsonObject = $.parseJSON(jsonString); console.log(jsonObject); //輸出結果:{name: "小明", age: 18, sentence: "I'm a "good" boy."} //解析正常
在以上代碼中,我們使用replace方法,將JSON字符串中的雙引號替換為“\\\"”,這樣即可完成轉義處理。這樣,我們就可以使用$.parseJSON()方法正確解析出JSON數據了。
上一篇jquery li 隱藏
下一篇dz使用html代碼