如何访问嵌套 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);
假设我在这个变量 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);