JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人和机器阅读和编写。它被广泛用于数据交换和存储。
在前端开发中,我们常常需要将 JavaScript 对象转换为 JSON 字符串,或者将 JSON 字符串转换为 JavaScript 对象。这个过程被称为序列化(Serialization)和反序列化(Deserialization)。
在 JavaScript 中,我们可以使用 JSON 对象提供的方法来实现序列化和反序列化。例如,JSON.stringify() 方法可以将 JavaScript 对象转换为 JSON 字符串,而 JSON.parse() 方法可以将 JSON 字符串转换为 JavaScript 对象。
// 将 JavaScript 对象转换为 JSON 字符串
let obj = {
name: "Tom",
age: 18
};
let jsonString = JSON.stringify(obj);
console.log(jsonString); // 输出 '{"name":"Tom","age":18}'
// 将 JSON 字符串转换为 JavaScript 对象
let jsonStr = '{"name":"Jerry","age":20}';
let jsonObj = JSON.parse(jsonStr);
console.log(jsonObj); // 输出 {name: "Jerry", age: 20}
需要注意的是,如果对象中包含函数、RegExp 对象或 Undefined 值,则在进行序列化时会被忽略。
let obj = {
name: "Tom",
age: 18,
sayHello: function() { console.log("Hello!"); },
reg: new RegExp(/\d+/),
other: undefined
};
let jsonString = JSON.stringify(obj);
console.log(jsonString); // 输出 '{"name":"Tom","age":18}'
在转换 JSON 字符串时,可能会遇到一些异常情况,例如 JSON 格式不正确、转换的数据类型不为字符串等。在这种情况下,程序可能会抛出异常。因此,在进行 JSON 序列化和反序列化时,我们需要时刻注意数据的格式和类型。