J'ai l'objet JSON suivant, renvoyé du service et j'ai besoin de convertir en classe d'annuaire. Comment puis-je faire cela puisque la classe d'annuaire a la propriété «élargie» qui n'existe pas dans l'objet JSON. Pls. aide que j'ai essayé depuis des jours.
Merci d'avance. P>
this.api.getFileUrl().subscribe((response:any) => {
let directory: Directory = JSON.parse(JSON.stringify(response));
});
4 Réponses :
permet de dire que vous avez JSON dans la propriété nommée de données, faites simplement: -
public directory: Omit<Directory, 'expanded'> = JSON.parse(data);
Je vois cela dans votre tentative de solution ... Pour que cela soit correct et fonctionnant complètement, cela signifie que vous devez avoir Si vous n'obtenez pas la structure de données que vous attendez, je regarderais ce que vous êtes getfileurl () code> Définir comme si ... p> Souscription () code> this.api.getfileURL () code> avec. Êtes-vous sûr que vous avez le .json () code> appelle sur l'objet code> code>? Je regarderais dans cette direction (je n'ai pas vu le code pour cela affiché). P> P>
Déclarez une interface et implémentez-la:
this.api.getFileUrl().subscribe((response:any) => {
let directory: IDirectory = response;
});
Vous devez réaliser que le type de type dactylographique ne fait rien sur le temps d'exécution.
ressemble à code> class code> est la valeur Ony pour Donc, ce que vous pouvez faire est ce que vous pouvez faire est ce qui suit: p> développé code> -> false code> afin que nous puissions attribuer cette valeur à l'objet de réponse. p> // means all values except expanded
type IGetFileUrlResponse = Omit<Directory, 'expanded'>;
this.api.getFileUrl().subscribe((response: IGetFileUrlResponse) => {
// here we add expanded prop for valid Directory type
let directory: Directory = {
...response,
expanded: false,
};
});