JSON是JavaScript Object Notation(JavaScript對象表示法)的縮寫,是一種輕量級的數據交換格式。在開發過程中,常常需要對JSON進行編碼或解碼,以便將數據傳輸或存儲。
在JavaScript中,有兩個方法可用于進行JSON的編碼與解碼:
JSON.stringify(obj) JSON.parse(str)
JSON.stringify方法將一個JavaScript對象轉換為一個JSON字符串。例如:
var myObj = { name: 'Tony', age: 30 }; var myJSON = JSON.stringify(myObj); console.log(myJSON); //輸出 {"name":"Tony","age":30}
JSON.parse方法將一個JSON字符串轉換為一個JavaScript對象。例如:
var myJSON = '{"name":"Tony","age":30}'; var myObj = JSON.parse(myJSON); console.log(myObj.name); //輸出 Tony
需要注意的是,當JSON對象中包含Unicode字符時,需要進行編碼處理。JavaScript中的encodeURIComponent方法可用于編碼字符串,對應的解碼方法是decodeURIComponent。例如:
var myObj = { name: '張三', age: 30 }; var myJSON = JSON.stringify(myObj); var myEncodedJSON = encodeURIComponent(myJSON); console.log(myEncodedJSON); //輸出 %7B%22name%22%3A%22%E5%BC%A0%E4%B8%89%22%2C%22age%22%3A30%7D //解碼 var myDecodedJSON = decodeURIComponent(myEncodedJSON); var myDecodedObj = JSON.parse(myDecodedJSON); console.log(myDecodedObj.name); //輸出 張三
在使用JSON轉碼時,需注意錯誤處理。JSON.parse方法可能會拋出SyntaxError異常,需進行try-catch捕獲。例如:
var myJSON = '{"name":"Tony","age:30}'; try { var myObj = JSON.parse(myJSON); } catch (e) { console.log("解析錯誤:" + e.message); //輸出 解析錯誤:Unexpected token ':' }
以上是JSON轉碼的相關內容,希望可以為你的開發工作提供幫助。