typescript - Angular 2 analyserer JSON-objekter til Angular-klasser
Jeg har fulgt Angular2s startdokumentasjon for å få min egen app i gang, og jeg har klart å hente JSON-objekter fra en lokal fil og vise dem i Angular2-maler. Imidlertid avhenger det for øyeblikket av at Angular-klassene samsvarer nøyaktig med strukturen til objektene i JSON-filen min.
Til slutt vil jeg trenge at appen min fungerer med JSON-LD, som har egenskapsnavn som "@id". Jeg har søkt litt på Google, og det ser ut til at RxJS kan ha funksjonaliteten jeg leter etter, men jeg er ikke sikker på hvor jeg skal begynne for å avbryte den automatiske bindingen fra noen JSON-data direkte inn i Angular2-klassene mine, og i stedet kunne slå opp noe som er merket som "@id" i JSON-en og sette verdien til SomeClass.id
Gjeldende kode som automatisk produserer et array av en Person-klasse:
getPeople(){
return this._http.get(this._peopleUrl)
.map(response => <Person[]> response.json().data)
.do(data => console.log(data)) //debug to console
.catch(this.handleError);
}
Fint for JSON som dette:
[
{
"id":"1",
"name":"tessa"
},
{
"id":"2",
"name":"jacob"
}
]
Men det ville åpenbart feile for JSON som dette:
[
{
"@id":"1",
"name":"tessa"
},
{
"@id":"2",
"name":"jacob"
}
]
Klassen min er enkel (for øyeblikket :-) )
export class Person {
constructor(
public id:number,
public name:string,
){}
}
Kan noen peke meg i riktig retning for dokumentasjon/eksempler på hvordan man mapper kompleks/vanskelig JSON til klassene i Angular2?
Svar #1
Jeg fant svaret i alternativ 4 av svaret gitt her: Hvordan initialiserer jeg et TypeScript-objekt med et JSON-objekt
Håper dette hjelper hvis noen havner på denne siden på jakt etter det samme!