Как получить конкретные данные в JSON-результате - PullRequest
0 голосов
/ 15 июня 2019

Вот мой результат JSON моих "моделей" автомобиля:

[
    {
        "idModele":1,
        "modele":"M3",
        "marque":{
            "idMarque":1,
            "marque":"BMW"
        }
    },
    {
        "idModele":2,
        "modele":"RS6",
        "marque":{
            "idMarque":2,
            "marque":"Audi"
        }
    },
    {
        "idModele":3,
        "modele":"C63 AMG",
        "marque":{
            "idMarque":3,
            "marque":"Mercedes"
        }
    },
    {
        "idModele":4,
        "modele":"Clio RS Trophy",
        "marque":{
            "idMarque":4,
            "marque":"Renault"
        }
    },
    {
        "idModele":5,
        "modele":"Scirocco Type R",
        "marque":{
            "idMarque":5,
            "marque":"Volkswagen"
        }
    },
    {
        "idModele":6,
        "modele":"118d",
        "marque":{
            "idMarque":1,
            "marque":"BMW"
        }
    }
]

Я просто хочу получить "модели", которые имеют "idMarque: 1" (BMW) (в моем результате они имеют2 "модели"), но я не знаю, как это сделать.

Мой бэкэнд: API REST с SpringBoot Мой веб-интерфейс: Angular

Ответы [ 4 ]

0 голосов
/ 15 июня 2019

Хорошая идея проверить, если вы искали значения объекта, так:

let filtered = models
    .filter(item => item.marque && item.marque.idMarque 
    ? item.marque.idMarque === 1 
    : '')

В этом случае, если вы не получили сообщение об ошибке, когда ключ ответа отсутствует в ответе сервера.

0 голосов
/ 15 июня 2019

Во-первых, просто для пояснения, это вопрос javascript. Неважно, какой у вас бэкэнд или внешний интерфейс.

Отвечая на ваш вопрос, вы можете отфильтровать результаты, чтобы получить только те элементы, которые вы ищете:

filteredCars = cars.filter(car => car.marque.idMarque === 1)

Это отфильтрует автомобили с marque.idMarque = 1.

Вы можете найти информацию о функции filter в документах .

0 голосов
/ 15 июня 2019

Вы можете получить модель с idMarque: 1, используя оператор фильтра.Например, вы получаете результат JSON в переменной класса result .Тогда вы можете использовать фильтр следующим образом.

let BMWCars = this.result.filter(e => e.marque.idMarque == 1);
0 голосов
/ 15 июня 2019

Предполагая, что массив json хранится в переменной result, вы можете просто:

  1. Зацикливаться на массиве json.
  2. Проверять каждый объект jsonдля желаемого условия.

    for (let i = 0; i < result.length; i++) {
       if (result[i].marque.idMarque === 1) {
         console.log('Found it ', result[i]);
       }
    }
    

Еще проще:

result.filter(e => e.marque.idMarque === 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...