• 关于JSON.stringify()与JSON.parse()


    一、JSON.stringify()与JSON.parse()的区别

      JSON.stringify()的作用是将js值转换成JSON字符串,而JSON.parse()是将JSON字符串转换成一个对象。也就是说,如果我们用JSON.stringify()将一个对象变成了字符串,那么使用JSON.parse()将字符串还原成对象。

    let obj = {
    name:"song",
    age:10
    };
    let changeObj =JSON.stringify(obj);
    console.log(changeObj); //"{"name":"song","age":10}"
    console.log(typeof changeObj);//string
    
    let orig =JSON.parse(changeObj);
    console.log(orig);//{name:"song",age:10}
    console.log(typeof orig);//object

    二、JSON.stringify()和JSON.parse()的几种用法

    (一)在localStorage/sessionStorage里存储对象/数组/对象数组

         localStorage/sessionStorage默认只能存储字符串,如果要存储对象类型的数据,在存入的时候利用JSON.stringify()将对象转换成字符串,然后在取出来的时候,利用JSON.parse()转会回对象。

    1 //存数据
    2 localStorage.setItem("cart",JSON.stringify(n));
    3 
    4 //取数据
    5 JSON.parse(window.localStorage.getItem("cart"));

    (二)vue路由传参(对象)

       有时候如果对象里面只是一两个属性,可以直接利用字面量的方式定义对象,但如果需要传递的对象中有很多属性,那么一个一个的写显然是很不可取的。所以就可以利用JSON.stringify()和JSON.parse()来转换。

    this.$router.push({ 
        name: "DataDetail", 
        query: {    
            tabsVal: JSON.stringify(val),  
            Name: this.$route.query.name 
            }
    });​

    (三)实现对象/数组的深拷贝

       其实这样将数据直接转换成字符串然后进行拷贝,完成后在转换回去,倒是一种很不错的方案。

    var obj2 = {
        name:"L",
        age:12,
        value:"IU"
    }
    obj1=JSON.parse(JSON.stringify(obj2));

    (四)判断数组/对象是否相等、或则判断是否包含某内容

      用来判断数组/对象是否相等用这种方法确实很容易,将要比较的两者都先转成字符串,然后直接全等于判断即可。

  • 相关阅读:
    SMTP 服务器要求安全连接或客户端未通过身份验证的各个解决方案(C#)
    远程数据同步的三种方法
    粗俗易懂的SQL存储过程在.NET中的实例运用之二
    SSIS脚本组件的代码
    浅谈C# StackTrace 类的实例说明
    解决了:无法加载文件或程序集'stdole, Version=7.0.3300.0'
    收藏: .NET中类型的转换
    WCF 实例 —— Android 短信助手 (WCF + Android)
    粗俗易懂的SQL存储过程在.NET中的实例运用
    此发送邮件的代码对吗?
  • 原文地址:https://www.cnblogs.com/superfeeling/p/12271524.html
Copyright © 2020-2023  润新知