Javascript 如何访问嵌套JSON中的值,并将所有字段连接到Angular中?

Javascript 如何访问嵌套JSON中的值,并将所有字段连接到Angular中?,javascript,json,angular,nested,concat,Javascript,Json,Angular,Nested,Concat,假设我在这个变量person中有这个JSON: { "firstName": "First Name" "lastName": "Last Name" "address": { "city": "New-York", "street": "Some Street" } } 现在,如果我想要street的值,我所要做的就是person[address][street] 我想知道是否有一种简单的方法可以做到这一点,假设我将所有字段连接

假设我在这个变量
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]


有没有办法做到这一点?谢谢

如果您有一个字符串变量,该变量包含按如下顺序访问值所需的所有字段(用点分隔的字段):

然后,您可以使用javascript中的eval函数获取请求的值:

    eval("person."+index);

这将返回所需的结果:“Some street”。

不确定这是否是您所追求的,但这将起作用:

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

console.log(one) // 'value1'

这样就使用了阵列分解。

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

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);

第一个问题是。。。为什么?如果我能
person.address.street
,我宁愿不中断连接以获得值?我事先不知道字段,因此出现了问题。数据到底是什么样的?请包含一个预期输出的示例输入。有没有不使用eval的方法?@mightgood是的,
let street=address.street我事先不知道字段,因此出现了问题。
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);