javascript - Angular-6: Konverter streng til array av et tilpasset objekt
Jeg har denne produserte strengen:
string str = [{"id":1,"name":"Angular"},{"id":2,"name":"SpringBoot"}]
Jeg vil gjerne konvertere det til et array av objekter for å få det slik:
listexps: Expertise[];
listexps = [{"id":1,"name":"Angular"},{"id":2,"name":"SpringBoot"}];
Og Ekspertise klasse er
export class Expertise
{
id: number;
name: string;
}
Jeg prøvde det:
let array = str .replace('[{','').replace('}]','').split("},{").map(String);
men det løste ikke problemet mitt, jeg fikk:
"id":1,"name":"Angular","id":2,"name":"SpringBoot"
i stedet for
[{"id":1,"name":"Angular"},{"id":2,"name":"SpringBoot"}];
Har du noen idé om hvordan man løser det? Stor takk.
Svar #1
Det du trenger er JSON.parse; det konverterer en streng til et objekt;
relevant 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);
}
}
fullstendig fungerende stackblitz her
