json的新方法

eval:可以解析任何字符串变成js

parse:只能解析JSON形式的字符串变成JS (安全性要高一些)         

parse():把字符串转成json

             ---字符串中的属性要严格的加上引号

stringify():把json转化成字符串

               ----会自动把双引号加上

还可以进行对象引用

var a = {
        name:'hello'
    };
    var b = a;
    b.name = 'hi'
    console.log(a.name)//hi

修改b的属性值的时候,a的属性值也会发生改变。

解决方法:用for in 就不会存在对象引用关系了
  

 var a ={
        name:'hello'
    };
    var b ={};
    for(var attr in a){
        console.log(attr)//name
        console.log(a[attr])//hello
        b[attr] = a[attr];
    }
    b.name = 'hi'
    console.log(a.name)//hello

另一种写法:

  var a ={
        name:'hello'
    };
    var str = JSON.stringify(a);
    //得到一个新的对象
    var b = JSON.parse(str);

    b.name = 'hi'
    console.log(a.name)

深层次的拷贝,可以利用递归(麻烦)
 另一种解决方法

var a ={
        name:{age:100}
    };
    var str = JSON.stringify(a);
    //得到一个新的对象
    var b = JSON.parse(str);

    b.name.age = 'hi'
    console.log(a.name.age)

 

posted on 2019-08-29 10:45  嗯嗯呢  阅读(192)  评论(0编辑  收藏  举报