JSON数据格式
- JSON数据格式:他不是数据类型,它是一种数据格式
- 一般情况下我们从后台请求来的数据都是json格式的
- 页面都是动态渲染的;是前端通过请求后台的数据库,后面把最新的数据返回,前面接受到后端返给的数据,然后进行字符串拼接,渲染到页面上;
- JSON数据格式
- json格式的对象
- json格式的字符串
- JSON.parse:把json格式的字符串转换为json格式的对象
- JSON.stringify:把json格式的对象转换为json格式的字符串
// JSON数据格式:他不是数据类型,它是一种数据格式
// 一般情况下我们从后台请求来的数据都是json格式的
// JSON数据格式
// :json格式的对象
// :json格式的字符串
// JSON.parse:把json格式的字符串转换为json格式的对象
// JSON.stringify:把json格式的对象转换为json格式的字符串
// let obj = {"name":3} // json格式的对象
// obj= JSON.stringify(obj)
// console.log(obj)
// let obj = '{"name":3}' // json格式的字符串
// obj=JSON.parse(obj)
// console.log(obj.name)// 3
---------------------------------------------------------
//JSON加减两边反引号,字符串
var str = "1234";
console.log(JSON.parse(str));//1234
console.log(typeof JSON.parse(str));//number
-----------------------------------------------------------
// 这个是JSON格式的对象
// var obj ={"name":"hello","str":"world"};
// console.log(obj.name);
// console.log(obj["name"]);
// 这个是JSON格式的字符串;
//var str = '{"name":"hello","str":"world"}';
// JSON.stringify : 将JSON格式的对象转成JSON格式的字符串
//console.log(JSON.stringify(obj));
// JSON.parse: 将JSON格式的字符串转成JSON格式的对象
//console.log(JSON.parse(str))
利用JSON实现浅克隆
// var obj = {a:1,b:2};
// var obj1 = obj;
// obj1.a=100;
// console.log(obj);
var obj = {a:{c:1},b:2};
// var newObj = {}
// for(var key in obj){
// newObj[key]=obj[key]
// }
// obj.a.c=100;
// console.log(newObj);
// 深克隆 :两个对象是独立的,互不影响;
var newObj = JSON.parse(JSON.stringify(obj));
obj.a.c=2;
console.log(newObj);
- 深克隆参考lodash中的深克隆:lodash
JSON(IE8以下不兼容)
//数据绑定 JSON 不是数据类型 window下存在的、IE8以下不兼容
//eval
console.log('JSON' in window); //IE7 false
console.log("eval" in window);//true
var str ='{"a":"1"}'
console.log(str);//"{"a":"1"}"
console.log(eval("("+str+")"));//{a: "1"} [object Object]