JSON

JSON格式(JavaScaript object Notation)是一种用于数据交换的文本格式,目的是取代XML格式

JSON对值的类型和格式有严格的规定。

  1. 符合类型的值只能是数组和对象,不能是函数、正则表达式、date对象。
  2. 简单类型的值只能有四种:字符串、数值(必须是十进制表示)、布尔值和null(不能使用undefined,infinity、NaN)
  3. 字符串必须使用双引号表示,不能使用单引号
  4. 对象的key-value必须放在双引号里面。
  5. 数组或对象最后一个成员的后面,不能加逗号

一些合格的JSON值示例

["aaa","bbb","ccc"]
{"one" : 1, "two" : 2, "three":3}
{"names":["张三","李四"]}
[{"name": "李四" },{"name" : "李四"}]

不合格的JSON值

{name : "张三" ,'age' : 32}

JSON.stringify()

JSON.stringify方法用于将一个值转换成字符串。该字符串符合JSON格式,并且可以被JSON.parse方法还原

        var json = '{"name":"xy","age" : 20 }'
        var obj = JSON.parse(json);
        console.log(obj);//{name: "xy", age: 20}
        console.log(typeof(obj))//object
        var str = JSON.stringify(obj);
        console.log(str);//{"name":"xy","age":20}
        console.log(typeof(str));//string

深拷贝的另一种写法

以前我们使用过递归完成深拷贝,但是也可用JSON完成

        var obj = {
                naem : "xy",
                age :20,
                interest :["a","b","c"]
        }
        var obj2 = JSON.parse(JSON.stringify(obj));
        obj2.age = 19;
        console.log(obj2.age);//19
        console.log(obj.age);//20

你可能感兴趣的:(JSON)