Как игнорировать переменную в данных JSON в Angular TypeScript - PullRequest
1 голос
/ 04 апреля 2019

Я столкнулся с проблемой при чтении файла JSON в угловом формате 7.

ниже - это формат моего файла данных JSON.

[
   {
      "attributes":  {
        "User": "jay"
    }
},
   {
      "attributes": {
        "User": "roy"
    }
},
    {
      "attributes":{
        "User": "kiya"
    }
},
    {
      "attributes":{
        "User": "gini"
    }
},
   {
      "attributes": {
        "User": "rock"
    }
},
   {
      "attributes": {
        "User": "joy"
    }
}

]

вот мой метод component.ts fileв котором я вызываю службу для файла JSON.

        this.rest.getUsers().subscribe((data: {}) => {
            console.log(data);
            this.items = data;
            //this.items=data;
        });

Вот мой метод файла service.ts.

 private extractData(res: Response) {
  let body = res;
  return body || { };
}

getUsers():Observable<any> {
    return this.httpService.get('./assets/usersdetails.json').pipe(
    map(this.extractData));
}

Теперь я хочу читать только User из JSONфайл и я хочу отфильтровать слово attributes.Есть ли способ отфильтровать эту вещь из файла JSON, так что я могу получить только User value.потому что в моем проекте это attributes в JSON создает проблему, и я хочу игнорировать или фильтровать это.

, потому что в моем приложении мне нужно прочитать JSON в следующем формате.

[
    {
        "User": "jay"
    },
    {
        "User": "roy"
    },
    {
        "User": "kiya"
    },
    {
        "User": "gini"
    },
    {
        "User": "rock"
    },
    {
        "User": "joy"
    }

]

, но данные поступают в формате, указанном выше, в формате JSON с attributes

, поэтому есть ли способ отфильтровать лишнюю attributes вещь из JSON во время чтения.

1 Ответ

1 голос
/ 04 апреля 2019

Вы не показываете код для метода extractData, поэтому трудно сказать, что там не работает, но вы должны быть в состоянии достичь своих целей с помощью следующего.

return this.httpService
           .get('./assets/usersdetails.json')
           .pipe(
             map(data => data.map(d => d.attributes))
           );

Если в «атрибутах» есть другие свойства и вам действительно нужны только «пользовательские» данные, вы можете дополнительно обновить код до:

return this.httpService
           .get('./assets/usersdetails.json')
           .pipe(
             map(data => data.map(d => ({ 'User': d.attributes.User })))
           );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...