序列化对象(javaScript Object Notation)

版权声明:版权所有-江西服装学院 https://blog.csdn.net/qq_38263696/article/details/83182236

对象序列化(serialization): 将对象的状态转化为字符串. 也可以将字符串还原为对象.
es5 , 提供了内置函数JSON.stringify() , 和JSON.parse() ,用来序列化和还原JavaScript对象.
JSON的全称是"JavaScript Object Notation" —JavaScript对象表示法.

var user = {name:"博主" , pwd:"123456"};
var s= JSON.stringify(user);
p = JSON.parse(s) ;  //p是s的深度clone

JSON 的语法是javaScript的子集, 不能表示JavaScript里的所有值.
支持对象,数组,字符串,无穷大数字,true,false和null , 并且它们可以序列化和还原.
NaN , Infinity, -Infinity序列化的结果是null,
日期对象序列化的结果是ISO格式的日期字符串, JSON.parse(Date对象) 为字符串;
函数 , RegExp , Error对象和undefined值不能序列化 ,在序列化的输出字符串会将这个属性省略掉.
JSON.stringify()和JSON.parse() 都可以接受第二个可选参数,通过传入需要序列化或还原的属性列表来定制
自定义的序列化或还原操作.
一个栗子:

  var  person ={name:"黄科坚" , sex:"男" , love: function(){alert("love编程")},  date: new Date(),undefined:undefined ,              };
 
  var s =JSON.stringify(person); //将对象序列化
console.log(typeof s)  //'string'
  var decodeperson=JSON.parse(s); //将JSON 还原成对象
 console.log(decodeperson.love) //undefined;
 console.log(typeof decodeperson.date); //'string';
 console.log(decodeperson.hasOwnProperty("undefined")); //false

猜你喜欢

转载自blog.csdn.net/qq_38263696/article/details/83182236