📜  从 JSON.stringify 获取值 - Javascript (1)

📅  最后修改于: 2023-12-03 15:06:31.681000             🧑  作者: Mango

从 JSON.stringify 获取值 - Javascript

在 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 字符串中包括函数等特殊类型的属性,则需要使用特殊的方法处理。