JSON格式(JavaScaript object Notation)是一种用于数据交换的文本格式,目的是取代XML格式
JSON对值的类型和格式有严格的规定。
- 符合类型的值只能是数组和对象,不能是函数、正则表达式、date对象。
- 简单类型的值只能有四种:字符串、数值(必须是十进制表示)、布尔值和null(不能使用undefined,infinity、NaN)
- 字符串必须使用双引号表示,不能使用单引号
- 对象的key-value必须放在双引号里面。
- 数组或对象最后一个成员的后面,不能加逗号
一些合格的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