javascript序列化

将js对象转换成JSON


var obj = {x:1,y:"string",z:null,m:[5,6,7]}

JSON.stringify(obj); //"{"x":1,"y":"string","z":null,"m":[5,6,7]}"

//需要注意的地方
//属性值为undefined  将不会出现在序列化后的结果当中
//属性值为NaN,将转换成null
//属性值为Infinity,将转换成null

var o = {x:undefined,y:null,z:NaN,m:Infinity,p:new Date()};

JSON.stringify(o)  //"{"y":null,"z":null,"m":null,"p":"2017-06-24T13:48:50.975Z"}"

将JSON转换为js对象


 

var o = JSON.parse('{"x":1}');

o.x  //1

 

序列化之自定义


 

 

var o = {
  x:1,
  y:2,
  z:{
    z1:1,
    z2:3
 }
}

JSON.stringify(o)  //"{"x":1,"y":2,"z":{"z1":1,"z2":3}}"

//如果我们想序列化后z 显示 z1+z2的值 怎么办?

var o = {
  x:1,
  y:2,
  z:{
    z1:1,
    z2:3,
    toJSON:function(){

     return this.z1+this.z2;
}
 }
 
}

JSON.stringify(o)  //"{"x":1,"y":2,"z":4}"

 

posted @ 2017-06-24 22:05  心碎whn  阅读(510)  评论(0编辑  收藏  举报