json解析与序列化
1:json对象
json对象有两个方法stringify和parse,他们分别是把js对象序列化成json字符串,和把json字符串解析成原生js值,例如:
var aa ={ name:"zoumm", age:23 }; var bb = JSON.stringify(aa); console.log(bb); //打印出{"name":"zoumm","age":23}
在序列化js对象时,所有函数与原型成员都会有意忽略,不体现在结果中,此外,值为undeined的任何属性也会被跳过。例如:
var aa1 ={ name:"zj", age:25,
tmp:undefined,
say:function(){ console.log(1); } };
var bb1 = JSON.stringify(aa1); console.log(bb1); //打印{"name":"zj","age":25}
}
将json字符串传递给json.parse,就得到js的值,如下:
var cc = JSON.parse(bb1); console.log(cc );//打印Object {name: "zj", age: 25}
虽然cc与aa1有相同的属性,但是他们是独立的,没有任何关系的对象
2:序列化选项
JSON.stringify()还接受两个参数,这两个参数用于指定不同方式序列化js对象,第一个参数可以是对象也可以使函数,第二个是一个选项,表示是否在json字符串中保留 缩进,
var book = { name :"zoumm", age :23, job :"it" } var text = JSON.stringify(book,["name","job"]);//两个参数,参数一:函数或者数组,参数二,截取的数据 console.log(text)//打印 {"name":"zoumm","job":"it"}