-1
votes

Besoin d'aide pour convertir une chaîne JSON vers un objet

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));
  });


0 commentaires

4 Réponses :


0
votes

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);


0 commentaires

0
votes

Je vois cela dans votre tentative de solution ... xxx

Pour que cela soit correct et fonctionnant complètement, cela signifie que vous devez avoir getfileurl () Définir comme si ... xxx

Si vous n'obtenez pas la structure de données que vous attendez, je regarderais ce que vous êtes Souscription () this.api.getfileURL () avec. Êtes-vous sûr que vous avez le .json () appelle sur l'objet ? Je regarderais dans cette direction (je n'ai pas vu le code pour cela affiché).


0 commentaires

0
votes

Déclarez une interface et implémentez-la:

this.api.getFileUrl().subscribe((response:any) => {
    let directory: IDirectory = response;
  });


0 commentaires

0
votes

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 développé code> -> false code> afin que nous puissions attribuer cette valeur à l'objet de réponse. p>

Donc, ce que vous pouvez faire est ce que vous pouvez faire est ce qui suit: 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,
    };
 });


0 commentaires