Как получить доступ к значениям из ответа JSON, который находится в [объекте Object], [объекте Object] в Angular 6 - PullRequest
1 голос
/ 24 апреля 2019

У меня есть ответ JSON, ниже мой ответ.

{
    "data": [
        {
            "2": [
                {
                    "name": "Test1",
                    "Address": "Test2"
                },

            ]
        },
         {
            "5": [
                {
                    "name": "Test3",
                    "Address": "Test4"
                },

            ]
        },


    ]
}

Я могу получить доступ к данным из ответа. Здесь «2» и «5» - это дата. Если в этом ответе json присутствует одна дата, то для этого ответа я должен получить имя и адрес Но я должен показать список данных.

<div *ngFor = "let data of result">
<span>{{data.name}}</span>
<span>{{data.Address}}</span>
</div>

В файле TS,

 let result = response.data;

Я хочу получить доступ к имени и адресу из этого. Может кто-нибудь, пожалуйста, помогите мне, как это сделать.

1 Ответ

3 голосов
/ 24 апреля 2019

Вы можете использовать функции Object.key, map и concat, чтобы отобразить ваши данные следующим образом

let obj = this.result;
this.result = Object.keys(obj).map(function (key) {   
  let objkey = obj[key];
  let first = Object.keys(objkey)[0]
  return obj[key][first];
});

this.result = [].concat.apply([], this.result);

Демо на https://stackblitz.com/edit/angular-flat-array-property

Обновлено:

Я обновляю демо с фильтром, чтобы применить ваш фильтр по дате.

    let obj = this.result;
    var filter = '5';
    this.result = Object.keys(obj).map(function (key) {
      let objkey = obj[key];
      let first = Object.keys(objkey)[0]
      if(filter == first){
         return obj[key][first];
      }else{
        return null;
      }

    });

    this.result = [].concat.apply([], this.result.filter(c=>c != null));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...