JSON(深入)
1 // JSON 是js的内置对象,主要操作json数据。 2 // 网络传输数据应用层都是字符串格式。 3 // 最早网络数据传输流行的格式是XML: <name>222</name><age>22</age> 4 // json 数据: '{"name":222,"age":22}',现在都是用json传输数据。 5 // json 格式数据的规定: 6 // 1. 对象的健名必须放在双""里面 7 // 2. 数组或者对象的最后一个成员后面不能加逗号, 8 // 3. 字符串必须用双引号表示。 9 // 4. 复合类型(引用数据类型)的值只能是数组或者对象. 10 // 5. 原始数据类型: 字符串,数值(只能用10进制表示),布尔值,null。不能用NaN,undefind,Infinity 11 12 var objStr = '{ "a": 1, "b": "2", "c": null, "usr": [1, 23, 4, 5, { "name": "lyz", "age": 20 }] }';// 符合json规范的js对象,加''变成字符串,就是一个json数据。 13 14 15 var arr = '["a1","b1",{"name":"zhangsan","age":12}]' // 符合json规范的js数组,''变成字符串,就是一个json数据。 16 17 18 //一、JSON。stringify:js对象转json字符串(json的序列化) 19 var son = { 20 name: 'lyz', 21 age: 18, 22 family: { 23 address: "aaa", 24 phone: 131111111 25 }, 26 ss: undefined, 27 aa: function () { } 28 29 30 } 31 32 var json = JSON.stringify(son) 33 console.log(json, typeof (json)); 34 35 //二、JSON.parse():JSON数据转换成js对象(json的反序列化) 36 var obj = JSON.parse(json) 37 console.log(obj, typeof (obj)); 38 39 40 41 //三、数据的深拷贝,该方法会把非json格式的格式属性丢掉 42 var copySon = JSON.parse(JSON.stringify(son)) 43 console.log(copySon===son,copySon);//false {name: "lyz", age: 18, family: {…}}