Json Array для массива пользовательских классов в машинописи - PullRequest
0 голосов
/ 29 сентября 2019

У меня следующий Json

[{"id":1,"role":"Admin"},{"id":2,"role":"Manager"},{"id":3,"role":"User"}]

Я хочу повторить это и добавить в свой собственный массив классов, который имеет те же свойства (id, role, ischecked) в угловом машинописи.

MyПользовательский класс

class Roles{
    ID:number;
    Role:string;
    Checked:Boolean;
} 

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 29 сентября 2019

Учитывая массив:

  data = [
    { id: 1, role: "Admin" },
    { id: 2, role: "Manager" },
    { id: 3, role: "User" }
  ];

, вы можете использовать следующий синтаксис:

let roles: Roles[] = this.data; 

Роли должны быть определены как:

export class Roles {
    id: number;
    role: string;
    checked?: Boolean;
} 
  1. Имена свойств чувствительны к регистру
  2. checked необязательно, теперь обозначается ?:

EDIT

Поскольку API возвращает ответ вформат Roles[] вы можете просто сделать:

.subscribe((res: Roles[]) => { 
      let roles = res; 
   }
);
0 голосов
/ 29 сентября 2019

Если у вас есть этот json-ответ:

[{"id":1,"role":"Admin"},{"id":2,"role":"Manager"},{"id":3,"role":"User"}]

, вы должны изменить ваш запрос следующим образом:

this.http.get<Role[]>('api/user/GetAllRoles').subscribe((res: HttpResponse) => (roles = res));

Это приведет к ответу на Role[] без необходимости JSON.stringify.Прежде чем вы должны объявить roles: Role[].

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