对象序列化(serialization)是指将对象的状态转换为字符串,也可以将字符串还原为对象。ECMAScript 5提供了内置函数JSON.stringify()和JSON.parse()用来序列化和还原对象。这些方法都使用JSON作为数据交换格式,JSON 的全称是“JavaScript Object Notation”——JavaScript对象表示法,它的语法和JavaScript对象与数组直接量的语法非常相近:
其中,最后的jsonObj是obj的深拷贝
JSON的语法是JavaScript的子集,它并不能表示JavaScript里的所有值。支持对象、数组、字符串、无穷大数字、true、false和null,并且它们可以序列化和还原。注意:
①NaN、Infinity和-Infinity序列化的结果是null;
②JSON.stringify()只能序列化对象可枚举的自有属性;
③日期对象序列化的结果是ISO格式的日期字符串(参照Date.toJSON()函数),但JSON.parse()依然保留它们的字符串形态,而不能将它们还原为原始日期对象;
④函数、RegExp、Error对象和undefined值不能序列化和还原;
以上就是本文的全部内容,希望对大家的学习有所帮助。
您可能感兴趣的文章: