如何访问嵌套 JSON 中的值,所有字段都连接在 Angular 中?

How to access a value in nested JSON with all fields concatenated in Angular?

假设我在这个变量 person 中有这个 JSON:

{
    "firstName": "First Name"
    "lastName": "Last Name"
    "address": {
        "city": "New-York",
        "street": "Some Street"
    }
}

现在,如果我想要 street 的值,我所要做的就是 person[address][street]

我想知道是否有一种简单的方法可以做到这一点,假设我将所有字段连接起来,如下所示:

const index = 'address:street'

我正在寻找一种简单的方法来实现 person[index]

这样的值

有办法吗?谢谢!

如果您有一个字符串变量,它包含所有必需的字段以按如下所示的正确顺序访问值(字段由点分隔):

    const index = "address.street";

然后就可以通过javascript中的eval函数得到请求的值了:

    eval("person."+index);

这returns要求的结果:"Some street".

不确定这是否是您想要的,但这可行:

const cstring = "value1:value2:value3";
const [one, two, three] = cstring.split(':');

console.log(one) // 'value1'

因此使用数组解构。

找到答案,我安装了 lodash 然后:

import _ from 'lodash';

const person = {
    "firstName": "First Name"
    "lastName": "Last Name"
    "address": {
    "city": "New-York",
    "street": "Some Street"
    }
}

const index = 'address.street'; // changed it to be split by . instead of :

_.get(person, index);