JSON 对象
最后更新于:2022-04-02 03:25:19
[TOC]
### JSON.stringify方法会忽略对象的不可遍历的属性。
设置 `enumerable ` 则不会被JSON 解析
```
var a={};
Object.defineProperties(a,{
name:{
value:"ccc",
enumerable:true,
},
age:{
value:"123",
enumerable:false,
}
})
JSON.stringify(a); //{"name":"ccc"}
```
### JSON.stringify 第二参数,指定需要转换的属性
只有在第二参数中的属性才会转换(白名单)
```
var a={
name1:"ccc1",
name2:"ccc2",
name3:"ccc2",
};
var b =['name1','name2'];
JSON.stringify(a, b); //{"name1":"ccc1","name2":"ccc2"}
```
### 第二个参数还可以是一个函数,用来更改JSON.stringify的返回值
```
function f (key, val) {
if (typeof val=='number'){
return val*2
}else{
return val;
}
}
JSON.stringify(a, f); //{"name1":4,"name2":6,"name3":8}
```
';