ES6是現(xiàn)代JavaScript的一種標(biāo)準(zhǔn),引入了很多新的語言特性,其中包括對(duì)JSON格式的支持。ES6采用了基于文本的JavaScript Object Notation (JSON)格式來序列化和反序列化數(shù)據(jù),使得在瀏覽器和服務(wù)器之間傳遞數(shù)據(jù)變得更加便捷。
ES6提供了一個(gè)新的成員方法:JSON.parse(),用于把JSON格式的數(shù)據(jù)轉(zhuǎn)換成JavaScript對(duì)象。ES6還提供了另外一個(gè)成員方法:JSON.stringify(),用于把JavaScript對(duì)象轉(zhuǎn)換成JSON格式的數(shù)據(jù)。
// JSON.parse()方法 const jsonStr = '{"name": "張三", "age": 20}'; const jsonObj = JSON.parse(jsonStr); console.log(jsonObj.name); // 輸出:"張三" // JSON.stringify()方法 const obj = {name: "李四", age: 25}; const jsonString = JSON.stringify(obj); console.log(jsonString); // 輸出:{"name":"李四","age":25}
ES6對(duì)JSON的支持還包括新的數(shù)據(jù)類型:Map和Set。Map和Set數(shù)據(jù)類型可以通過JSON.stringify()方法進(jìn)行序列化,也可以通過JSON.parse()方法進(jìn)行反序列化,十分方便。
// 序列化Map數(shù)據(jù)類型 const map = new Map([['name', '趙六'], ['age', 30]]); const jsonString = JSON.stringify([...map]); console.log(jsonString); // 輸出:[["name","趙六"],["age",30]] // 反序列化Map數(shù)據(jù)類型 const jsonData = '[["name","王五"],["age",35]]'; const mapObj = new Map(JSON.parse(jsonData)); console.log(mapObj.get('name')); // 輸出:"王五" // 序列化Set數(shù)據(jù)類型 const set = new Set(['red', 'green', 'blue']); const jsonString = JSON.stringify([...set]); console.log(jsonString); // 輸出:["red","green","blue"] // 反序列化Set數(shù)據(jù)類型 const jsonData = '["red","green","yellow","green"]'; const setObj = new Set(JSON.parse(jsonData)); console.log(setObj); // 輸出:Set(3) {"red", "green", "yellow"}
總的來說,ES6對(duì)JSON的支持讓JavaScript開發(fā)更加高效、便捷、靈活。