javascript - TypeScript-klass till JSON
Jag har en klassarray där klassen ser ut så här:
class Tag{
select: string;
search: string;
}
Jag vill konvertera det till JSON där det förmodligen kommer att se ut som [{select: "blah", search: "bleh"}, {...}, {...}].
Är detta möjligt? För från Angular 2-handledningen kan du göra motsatsen med raden:
.map((r: Response) => r.json().data as Hero[]);
Svar #1
Du kan omvandla javascript-objekt till json-strängar med JSON.stringify() Eftersom klasser och instanser av klasser är objekt i javascript kan du också göra dem till strängar
Svar #2
Du kan lägga till en toJSON()-funktion i din klass. Denna funktion anropas automatiskt när JSON.stringify() anropas på ditt klassinstans
class Person{
constructor(readonly name){}
toJSON(){
return {
firstName: this.name
}
}
}
Nu, om du console.log din klassinstans med JSON.stringify, kommer du att se detta resultat
const person=new Person("Tom"); console.log(JSON.stringify(person));
Utdata
{
firstName: "Tom"
}
