📅  最后修改于: 2023-12-03 15:06:31.681000             🧑  作者: Mango
在 Javascript 中,JSON.stringify() 方法可以将一个对象转换成 JSON 格式的字符串。但是,在某些情况下,我们可能需要从这个字符串中获取到某个属性的值。本文将介绍如何从 JSON.stringify() 获取值。
我们将使用以下示例对象作为 JSON.stringify() 的参数:
const obj = {
name: 'Alice',
age: 25,
address: {
city: 'New York',
state: 'NY'
}
};
要获取顶级属性的值,直接使用 JSON.parse() 将 JSON 字符串转换成对象,然后使用对象的属性访问方法即可:
// 转换 JSON 字符串为对象
const objFromJson = JSON.parse(JSON.stringify(obj));
// 访问属性
console.log(objFromJson.name); // 输出 "Alice"
console.log(objFromJson.age); // 输出 25
如果要获取嵌套属性的值,可以使用 Array.reduce() 方法,将嵌套属性名按层级拆分为数组,然后再依次访问:
// 按层级拆分嵌套属性为数组
const addressKeys = 'address.city'.split('.');
// 逐层访问嵌套属性
const nestedValue = addressKeys.reduce((prev, curr) => {
return prev ? prev[curr] : undefined;
}, objFromJson);
console.log(nestedValue); // 输出 "New York"
通过以上两种方法,我们可以轻松地从 JSON.stringify() 中获取到想要的值。需要注意的是,如果 JSON 字符串中包括函数等特殊类型的属性,则需要使用特殊的方法处理。