侧边栏壁纸
  • 累计撰写 225 篇文章
  • 累计创建 275 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

你不常用的JSON.parse用法

DGF
DGF
2022-03-18 / 0 评论 / 0 点赞 / 3 阅读 / 0 字

大家都知道 JSON.parse() 用于将 JSON 字符串转换成对象,但并不一定都知道它的一些妙用。下面我们一起来看看。

如果你还想了解一些 JSON.stringify 的其他用法,可以参考《你不常用的JSON.stringify的用法》这篇文章。

语法

JSON.parse(text[, reviver])
  • text:一个有效的 JSON 字符串。
  • reviver:一个函数,其参数为 keyvalue,用于对解析过程中的每个值进行处理。

我们来看一个例子:

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)}
0

评论区