在JavaScript中,可以使用JSON(JavaScript Object Notation)对象来解析和序列化数据。JSON是一种轻量级的数据交换格式,基于JavaScript语法。它通过使用简单的结构、易于理解的方式来表达复杂的数据。以下是JSON对象的两个用途:
可以使用JSON.parse()方法将一个带有JSON数据的字符串解析成JavaScript对象。
const jsonString = '{"name": "John", "age": 30, "city": "New York"}';
const personObject = JSON.parse(jsonString);
console.log(personObject.name); // Output: John
在JavaScript中,可以使用JSON.stringify()方法将一个JS对象序列化为JSON字符串。
const personObject = { name: "John", age: 30, city: "New York" };
const jsonString = JSON.stringify(personObject);
console.log(jsonString); // Output: {"name":"John","age":30,"city":"New York"}
需要注意的是,如果要转换具有循环引用的对象或包含函数的对象,则需要在转换时指定replacer函数参数。此外,在序列化时还可以传递可选的 space 参数,用来格式化字符串输出:
const circularObject = {};
circularObject.circularRef = circularObject;
circularObject.list = [circularObject, circularObject];
const replacer = (key, value) => {
if(key === 'circularRef') return undefined;
if(value instanceof Array || typeof value === 'object') return value.toString();
return value;
};
const jsonString = JSON.stringify(circularObject, replacer, 2);
console.log(jsonString);
/*
Output:
{
"list": [
"[object Object]",
"[object Object]"
]
}
*/
需要注意的是,在解析和序列化JSON时,输入的数据必须合法。否则会抛出异常。