ES6是ECMAScript 2015的縮寫,它是JavaScript的下一代標準。在ES6中,JSON.parse的功能得到了大幅度的改善,使得它成為一個更加強大和靈活的解析函數。
在ES6中,JSON.parse方法支持解析的字符串不再僅限于嚴格的JSON格式。它可以接受一個可取消解析字符的“reviver”函數,通過該函數,可以過濾對象成員、修改值或者解析比較復雜的數據格式。
const jsonStr = `{ "name": "Alice", "age": 28, "isMarried": true, "hobbies": [ "reading", "cooking", "traveling" ], "address": { "zipcode": "100001", "city": "Beijing", "country": "China" }, "birthday": "1994-05-16" }`; JSON.parse(jsonStr, (key, value) =>{ if (key === 'birthday') { return new Date(value); } else { return value; } });
上面這段代碼中,我們使用了一個reviver函數,將birthday屬性值從字符串轉換成一個Date對象。如果沒有在reviver函數中定義過濾規則,則會按照普通的JSON解析方式解析。
無論是哪種情況,返回值都是解析后的JavaScript對象。