Angular-6: конвертировать строку в массив пользовательского объекта - PullRequest
2 голосов
/ 08 июля 2019

у меня получилось строка :

string str = [{"id":1,"name":"Angular"},{"id":2,"name":"SpringBoot"}]

Я хотел бы преобразовать его в массив объектов , чтобы он имел:

listexps: Expertise[];
listexps = [{"id":1,"name":"Angular"},{"id":2,"name":"SpringBoot"}];

А Экспертиза Класс

export class Expertise
{
    id: number;
    name: string;
}

Я пробовал это:

let array = str .replace('[{','').replace('}]','').split("},{").map(String);

но это не решило мою проблему, я получил:

"id":1,"name":"Angular","id":2,"name":"SpringBoot"

вместо

[{"id":1,"name":"Angular"},{"id":2,"name":"SpringBoot"}];

Есть ли у вас какие-либо идеи по поводу решения этого? Большое спасибо.

1 Ответ

1 голос
/ 09 июля 2019

Что вам нужно, это JSON.parse ; преобразует строку в объект;

релевантно ts :

import { Component } from '@angular/core';
export class Expertise {
  id: number;
  name: string;
}
@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  name = 'Angular';
  strIntoObj: Expertise[];

  constructor() {
    let str: string = '[{"id":1,"name":"Angular"},{"id":2,"name":"SpringBoot"}]';
    this.strIntoObj = JSON.parse(str);
    console.log(this.strIntoObj);
  }
}

завершено рабочий стек стека здесь

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