一文搞懂JSON.stringify和JSON.parse(二)JSON.stringify高阶用法,两个参数,三个参数用法,过滤器

二、JSON.stringify高阶用法

2.1 JSON.stringify第二个参数是一个数组

SON.stringify(obj,itemArr)有两个参数使用,过滤作用 

export default {
  data() {
    return {
      list: [
        { name: "张安", age: 34 },
        { name: "张强", age: 84 },
        { name: "张辉", age: 54 },
      ],
      obj: { name: "安", age: 14 },
    };
  },
  created() {
    this.obj = { name: "安", age: 14, classs: "三年级二班", teacher: "张三" };
    //JSON.stringify(obj,itemArr)有两个参数使用,过滤作用 obj是要序列化的对象,
itemArr是一个数组,包含 对应 obj的一个属性
    const obj1 = JSON.stringify(this.obj, ["name", "teacher"]);
    //此时我们打印的只有name,teacher这两个属性,相当于一个过滤属性
    console.log(obj1); //{"name":"安","teacher":"张三"}
    //如果第二个数组,没有匹配到值,就不会展示,比如下面的name1属性,在obj中没有,
所以就不会展示
    const obj2 = JSON.stringify(this.obj, ["name", "name1"]);
    console.log(obj2); //{"name":"安"}
    
  },
  mounted() {},
  methods: {},
};

2.2 JSON.stringify第二个参数是一个方法

export default {
  data() {
    return {
      list: [
        { name: "张安", age: 34 },
        { name: "张强", age: 84 },
        { name: "张辉", age: 54 },
      ],
      obj: { name: "安", age: 14 },
    };
  },
  created() {
    this.list = [
      { name: "张安", age: 34 },
      { name: "张强", age: 84 },
      { name: "张辉", age: 54 },
    ];
    //JSON.stringify(obj,itemArr)有两个参数使用,
    //第二个参数是方法时候,注意方法不能用括号this.change()
    const list1 = JSON.stringify(this.list, this.change);
    console.log(list1);
    //[{"name":"张安","age":"E"},{"name":"张强","age":"A"},{"name":"张辉","age":"B"}]
  },
  mounted() {},
  methods: {
    change(key, value) {
      if (key === "age") {
        if (value === 100) {
          return "S";
        } else if (value >= 80) {
          return "A";
        } else if (value >= 50) {
          return "B";
        } else {
          return "E";
        }
      }
      return value;
    },
  },
};

 

2.3 JSON.stringify  第三个参数–字符串缩进

JSON.stringify()方法的第三个参数控制缩进和空格。在这个参数是数值时,表示每一级缩进的空格数。例如,每级缩进4个空格,可以这样:

 const list1 = JSON.stringify(this.list, this.change, 3);

如果直接写第三个参数,不写中间参数,则没有效果,不识别被忽略

  const list1 = JSON.stringify(this.list, 3);

[{"name":"张安","age":34},{"name":"张强","age":84},{"name":"张辉","age":54}]

一文搞懂JSON.stringify和JSON.parse(一)JSON.stringify 和JSON.parse基础用法_前端小云儿的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小云儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值