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: {…}}