第20章——JSON
JavaScript Object Notation
一种数据格式
格式
- 简单值
- 对象
- 属性名需要双引号
- 数组
- 作为末尾不能添加
,
如下:
[
{
"name": "gem",
"age": 22,
"details": {
"sex": "man"
}
},
{
"name": "zjj",
"age": 21,
"details": {
"sex": "man"
}
}
]
序列化
JSON.stringify()
在对JavaScript对象进行序列化的时候:
- 所有函数及原型成员都会被忽略
- 值为
undefined
的任何属性也会被跳过
序列化选项(参数)
- 被序列化的对象
- 过滤器(数组/函数)
- 是否保留缩进
var obj={
name:'gem',
age:22,
sex:'man'
}
var jsonText = JSON.stringify(obj,["name","age"]) // {"name":"gem","age":22}
// 过滤出name与age
var jsonTextFun = JSON.stringify(obj,function(name,value){
return value
},false)
// 可在函数内部对数据进行处理,后返回一个value作为对应属性序列化的value值
解析
JSON.parse()
解析产生一个具有相同属性的对象,但新对象是独立的,与原有未序列化的对象没有关系。
利用这一点可以深拷贝
解析选项(参数)
- 被解析的已序列化对象
- 过滤函数