ES6中的json字符串
-
拥有特殊格式的字符串
-
用于描述对象或者数组的字符串
【作用】:主要用于前后端交互。
JSON语法
-
{}表示对象;
-
[]表示数组;
-
键与值之间用:分割;
-
属性之间用,分割;
-
属性名必须用双引号;
-
值可以是字符串,数字,布尔值,null,对象,数组,不能是NaN;
-
最后一个不能是逗号;
JSON与对象之间的转换
-
JSON字符串转转对象
-
Json.parse(字符串)会返回转换好的JS对象。
-
let a = `{"name":"zhangsang","age":20}`;
let d = JSON.parse(a)
console.log(d);
对象与JSON字符串转换
-
JSON.stringify() 用于将一个值转为JSON字符串。
-
转换时,对象的函数会被过滤掉
//这个里面加载着函数。
let p = {name:"赵七",age:30,eat(){
console.log("吃吃吃");
}};
//转换的时候会把对象中的函数过滤掉
let s = JSON.stringify(p)
console.log(s);
//结果如下
// '{"name":"赵七","age":30}'
浅拷贝
let p1 = {};
for (const key in p) {
p1[key] = p[key];
}
console.log(p1);
深拷贝
- 深拷贝:可以先讲对象转为json字符串,再转回对象。
let p = {
name: "芜湖大司马",
age: 35,
friend: [{
name: "pdd",
age: 30
}, {
name: "茄子",
age: 30
}]
};
//将对象转换为json字符串
let s = JSON.stringify(p);
//再将json字符串转换为对象,
let p1 = JSON.parse(s);
//就形成了深拷贝
console.log(p1);
//此时是不相等的
console.log(p1.friend == p.friend);