大家都知道 JSON.parse()
用于将 JSON 字符串转换成对象,但并不一定都知道它的一些妙用。下面我们一起来看看。
如果你还想了解一些 JSON.stringify
的其他用法,可以参考《你不常用的JSON.stringify的用法》这篇文章。
语法
JSON.parse(text[, reviver])
- text:一个有效的 JSON 字符串。
- reviver:一个函数,其参数为
key
和value
,用于对解析过程中的每个值进行处理。
我们来看一个例子:
const person = {
id: 3508,
name: 'DGF',
age: 30,
address: {
city: 'xm',
},
arr: [1, 2, 3]
}
let xl = JSON.stringify(person);
1. 过滤不需要解析的属性
你可以使用 reviver
参数来过滤掉一些不需要解析的属性。例如,以下代码会过滤掉 id
属性:
let parse = JSON.parse(xl, (key, value) => {
if(key == 'id') return;
return value;
});
console.log(parse);
// 输出:{name: 'DGF', age: 30, address: {…}, arr: Array(3)}
2. 处理符合条件的值
你还可以在解析时对符合条件的值进行处理。例如,以下代码会将所有数字类型的值乘以 8:
let p1 = JSON.parse(xl, (key, value) => {
return typeof value == 'number' ? value * 8 : value;
});
console.log(p1);
// 输出:{id: 28064, name: 'DGF', age: 240, address: {…}, arr: Array(3)}
评论区