Как получить доступ к значению во вложенном JSON со всеми полями, объединенными в Angular? - PullRequest
0 голосов
/ 19 апреля 2020

Допустим, у меня есть JSON в этой переменной person:

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

Теперь, если мне нужно значение street, все, что мне нужно сделать, это person[address][street]

Мне было интересно, есть ли простой способ сделать это, скажем, у меня есть все поля, объединенные как:

const index = 'address:street'

Я ищу простой способ получить значение как person[index]

Есть ли способ сделать это? спасибо!

Ответы [ 3 ]

1 голос
/ 19 апреля 2020

Если у вас есть строковая переменная, в которой есть все обязательные поля для доступа к значению в правильном порядке, как показано ниже (поля, разделенные точкой):

    const index = "address.street";

Затем вы можете получить запрошенное значение с помощью используя функцию eval в javascript:

    eval("person."+index);

Возвращает требуемый результат: "Some street".

0 голосов
/ 19 апреля 2020

Нашел ответ, я установил loda sh, а затем:

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);
0 голосов
/ 19 апреля 2020

Не уверен, что это то, что вам нужно, но это сработает:

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

console.log(one) // 'value1'

Так что используется деструктуризация массива.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...