在JavaScript中,转换对象通常指的是将对象从一种形式转换为另一种形式。这种转换可能是为了适应不同的使用场景,比如将对象序列化为JSON字符串以便于存储或传输,或者将JSON字符串解析为对象以便于操作。
JSON.stringify(obj)
:将JavaScript对象序列化为JSON字符串。JSON.parse(str)
:将JSON字符串解析为JavaScript对象。// 定义一个对象
const person = {
name: "Alice",
age: 30,
city: "New York"
};
// 序列化对象为JSON字符串
const jsonString = JSON.stringify(person);
console.log(jsonString); // 输出: {"name":"Alice","age":30,"city":"New York"}
// 反序列化JSON字符串为对象
const parsedPerson = JSON.parse(jsonString);
console.log(parsedPerson); // 输出: { name: 'Alice', age: 30, city: 'New York' }
JSON.stringify
会抛出错误。circular-json
或自定义序列化函数来处理循环引用。function replacer(key, value) {
if (value instanceof Date) {
return { __type: 'Date', value: value.toISOString() };
}
return value;
}
function reviver(key, value) {
if (value && value.__type === 'Date') {
return new Date(value.value);
}
return value;
}
const obj = {
name: "Bob",
birthDate: new Date()
};
const jsonString = JSON.stringify(obj, replacer);
console.log(jsonString); // 输出包含日期信息的JSON字符串
const parsedObj = JSON.parse(jsonString, reviver);
console.log(parsedObj.birthDate instanceof Date); // 输出: true
通过上述方法,可以灵活地处理JavaScript对象的转换,满足不同的应用需求。
领取专属 10元无门槛券
手把手带您无忧上云