L'analyse de JSON à partir de Typescript restaure les membres de données mais pas le type: impossible d'appeler des méthodes sur le résultat
Quand je parser le JSON-stringified résultat d'un objet p1 dans un autre objet de la p2, le deuxième objet obtient les données associées à l'objet premier, mais je ne peux pas appeler tout nethods sur elle. À l'aide de http://www.typescriptlang.org/Playground/ j'ai essayé le suivant:
class Person
{
constructor(public name: string, public age: number) {
}
Age() { return this.age; }
}
//Create a person
var p: Person = new Person("One", 1);
//Create a second person from the JSON representation
//of the first (NOTE: assert it is of type Person!)
var p2: Person = <Person>JSON.parse(JSON.stringify(p));
document.writeln("Start");
document.writeln(p.name); //OK: One
document.writeln(p.Age()); //OK: 1
document.writeln(p2.name); //OK: One
document.writeln(p2.age; //OK: 1
document.writeln(p2.Age()); //ERROR: no method Age() on Object
document.writeln("End");
Comment puis-je analyser les données JSON et obtenir un véritable objet de Personne?
source d'informationauteur MarkusT
Vous devez vous connecter pour publier un commentaire.
essayez ceci:
JSON est une représentation des données uniquement, pas n'importe quel comportement.
Vous pouvez créer une méthode sur l'objet qui accepte de l'objet JSON et hydrate les données qu'il contient, mais un objet JSON ne peut pas transférer le comportement (méthodes, etc), seule la plaine de données.