Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1483 connectés 

  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  POO - Sauvegarde d'instances

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

POO - Sauvegarde d'instances

n°2363803
b_b_rodrig​uez
Posté le 05-10-2020 à 20:18:18  profilanswer
 

Bonjour,
 
Je me lance dans l'orienté objet et je ne sais pas trop comment faire pour 'recréer' des instances d'une classe à partir d'un fichier de sauvegarde JSON (sans avoir besoin de redéfinir toutes les propriétés, directement ou via des setters).
 
Je m'explique : j'ai une classe 'Entity' telle que visible en version abrégée ci-dessous. La méthode display() permet d'afficher une instance de la classe à l'écran.

Code :
  1. class Entity {
  2.     constructor(entity_id, entity_name, xPos, yPos, width, height) {
  3.         this.entity_id =  entity_id;
  4.         this.entity_name = entity_name;
  5.         this.position =
  6.         {
  7.             x: xPos,
  8.             y: yPos
  9.         };
  10.  
  11.         // ...
  12.     }
  13.  
  14.     set setTextContent(x) {
  15.         this.text_content = x;
  16.     }
  17.     set setEntityName(title) {
  18.         this.entity_name = title;
  19.     }
  20.     display() {
  21.         let div = document.createElement('div');
  22.         // ...
  23.         maincontainer.appendChild(div);
  24.     }
  25. }


 
Une action de type click va donc créer une nouvelle instance :

Code :
  1. let o1 = new Entity(1, `Test ${1}`, 20, 20, 200, 200);


 
Puis en cliquant pour sauvegarder, une fonction AJAX fait appel à un script PHP pour stocker les données dans un fichier.
Une autre fonction AJAX se charge de récupérer ces données.
 
Maintenant mon problème c'est comment recréer les instances à partir du JSON ?
Car si je fais quelque chose comme :

Code :
  1. let s1 = JSON.stringify(o1);
  2. let o2 = new Entity(JSON.parse(s1));


 
Je perds les données qui ne sont pas définies par le constructeur.
 
Et si je fais :

Code :
  1. let o3 = JSON.parse(s1);


 
o3 n'est pas considéré comme une instance de Entity...


Message édité par b_b_rodriguez le 05-10-2020 à 20:18:39
mood
Publicité
Posté le 05-10-2020 à 20:18:18  profilanswer
 

n°2364737
MaybeEijOr​Not
but someone at least
Posté le 15-10-2020 à 16:37:15  profilanswer
 

Bonjour,
 
Est-ce que la méthode assign() ne ferait pas l'affaire ?


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
n°2366611
b_b_rodrig​uez
Posté le 04-11-2020 à 20:08:47  profilanswer
 

MaybeEijOrNot a écrit :

Bonjour,
 
Est-ce que la méthode assign() ne ferait pas l'affaire ?


 
 :hello:  
 
C'était bien la bonne solution !
Fort heureusement j'avais fini par trouver même si ça m'a pris du temps...
 
J'avais un peu oublier ce topic  [:darjeeling], mais merci quand même  :jap:

n°2366615
MaybeEijOr​Not
but someone at least
Posté le 04-11-2020 à 20:53:41  profilanswer
 

De rien, faut dire que personne n'a répondu rapidement, visiblement on était tous trop occupés. :(


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Javascript/Node.js

  POO - Sauvegarde d'instances

 

Sujets relatifs
Sauvegarde d'images dans une base de donnéeBatch de sauvegarde incrementiel
Ajout nouveau module+sauvegarde en BD[Ada][Resolu]Ambiguïté à l'appel d'une fonction en POO
sauvegarde d'environnement .bat / powershell[powershell] lister instances sql server distant
Problème avec $this avec la POO[bat]2 instances IE sur 2 écrans différents
Création d'un fichier de sauvegarde sous Word[Macro Catia ] Rename all instances and references
Plus de sujets relatifs à : POO - Sauvegarde d'instances


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR