JSON
是表示值和对象的通用格式
- JSON.stringify:将对象转换为JSON
- JSON.parse: 将JSON转换为对象
- 作用:用来存储喝交换文本信息
- 实例:
{'name':'xxx','age':21}
JSON.stringify
- 将接收到的对象转换为字符串,
- 得到的json字符串被称为JSON编码或序列化(字符串化、编组化)
注意
- 字符串使用的是双引号,JSON中没有单引号(反引号)
- 对象属性名也是双引号,这是强制性的
var stu = {
name: 'csdn',
age: 12,
courses: ['html', 'js', 'css'],
wife: null
}
let json = JSON.stringify(stu)
console.log(json); // {"name":"csdn","age":12,"courses":["html","js","css"],"wife":null}
console.log(typeof json); //string
JSON.stringify也可应用于原始(primitive)数据类型
JSON支持以下数据类型
- Objiect {…}
- Arrays […]
- Primitives: strings numbers boolean null
console.log(JSON.stringify(21)); //21
console.log(JSON.stringify('CSDN')); //CSDN
console.log(JSON.stringify(true)); //true
console.log(JSON.stringify([1, '23', 12])); //[1, '23', 12]
JSON.parse
解码JSON字符串
let value = JSON.parse(str,[reviver])
- str:被解析的JSON字符串
- reviver:可选函数,function(key,value),该函数将为每个(key,value)对调用,并可以对值进行转换
字符串化数组
let num = "[0,1,2,3]";
num = JSON.parse(num);
console.log(num[1]); //15
嵌套对象
let userData = '{ "name": "John", "age": 35, "isAdmin": false, "friends": [0,1,2,3] }';
let user = JSON.parse(userData);
console.log(user); //{ name: 'John', age: 35, isAdmin: false, friends: [ 0, 1, 2, 3 ] }
console.log(user.friends[1]); //1
注意:JSON不支持注释,向JSON添加注释无效