Как получить доступ к данным в JSON ответе в Angular 8? - PullRequest
1 голос
/ 14 апреля 2020

Я получаю данные обратно с веб-сервера и пытаюсь получить доступ к данным внутри объекта JSON. У меня возникли некоторые проблемы с доступом к нему.

JSON выглядит следующим образом:

{
     "faults": [
      {
        "FaultCodeType": "X",
        "ErrorType": "System",
        "Description": "Response failed for reason 1"
      },
      {
        "FaultCodeType": "Y",
        "ErrorType": "System",
        "Description": "Response failed for reason 2"
      }
     ],
     "responseInfo": {},
     "responseInfo2": {},
     "responseInfo3": {}
}

Должен ли я использовать JSON .parse?

JSON .stringify?

У меня есть метод:

loadData(dataPassed) {
  this.angularService.searchWithData(dataPassed).subscribe(
data => {
const fault = data[0];
const fault2 = data[1];
console.log('Data is here = ' + data); // returns the JSON
console.log('Request = ' + JSON.stringify(data)); // shows the JSON
console.log(fault);  // undefined
console.log(fault2); // undefined
  }
}

Хотя он не работает, любая помощь будет принята с благодарностью.

Ответы [ 2 ]

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

Для доступа faults:

const faults = data.faults;

Затем вы можете выполнить итерации по этим faults:

faults.forEach(f -> {
     console.log('f.FaultCodeType', f.FaultCodeType);
     console.log('f.ErrorType', f.ErrorType);
     console.log('f.Description', f.Description);
})

Для доступа к responseInfo, responseInfo2 или responseInfo3:

console.log('data.responseInfo', data.responseInfo);
console.log('data.responseInfo2', data.responseInfo2);
console.log('data.responseInfo3', data.responseInfo3);
1 голос
/ 14 апреля 2020

Вы получаете неопределенное значение из-за

const fault = data[0];
const fault2 = data[1];

, поскольку ваши данные являются объектом, а не массивом, поэтому ошибка [0] не существует

try

const fault = data.faults[0];
const fault2 = data.faults[1];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...