JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它是基于JavaScript的一种文本格式,用于让人和计算机之间交换数据。JSON在Web应用中广泛使用,它可以用来表示对象、数组、字符串、数字、布尔值和null。
使用JSON对象
在JavaScript中,JSON对象是使用JSON.parse()和JSON.stringify()来解析和序列化JSON字符串的。
JSON.parse()
JSON.parse()方法用于将一个JSON字符串转换为JavaScript对象。它接受一个JSON字符串作为参数,并返回一个JavaScript对象。
let jsonStr = '{"name":"John","age":30}';
let jsonObj = JSON.parse(jsonStr);
console.log(jsonObj);
// 输出:{name: "John", age: 30}
JSON.stringify()
JSON.stringify()方法用于将JavaScript对象序列化为JSON字符串。它接受一个JavaScript对象作为参数,并返回一个JSON字符串。
let jsonObj = {name: "John", age: 30};
let jsonStr = JSON.stringify(jsonObj);
console.log(jsonStr);
// 输出:"{"name":"John","age":30}"
JSON.parse()和JSON.stringify()的参数
JSON.parse()和JSON.stringify()都接受第二个可选参数,可以用来控制序列化和解析的过程。
- JSON.parse()第二个参数可以是一个函数,它用于在解析JSON字符串时将值转换为指定的类型。
- JSON.stringify()第二个参数可以是一个数组,它用于指定要序列化的属性。
JSON.parse()第二个参数
JSON.parse()第二个参数可以是一个函数,它用于在解析JSON字符串时将值转换为指定的类型。
let jsonStr = '{"name":"John","age":30}';
let jsonObj = JSON.parse(jsonStr, (key, value) => {
if (key === 'age') {
return value * 2;
}
return value;
});
console.log(jsonObj);
// 输出:{name: "John", age: 60}
JSON.stringify()第二个参数
JSON.stringify()第二个参数可以是一个数组,它用于指定要序列化的属性。
let jsonObj = {name: "John", age: 30, job: "teacher"};
let jsonStr = JSON.stringify(jsonObj, ["name", "age"]);
console.log(jsonStr);
// 输出:"{"name":"John","age":30}"