diff --git a/modele/Cellule.js b/modele/Cellule.js
index b0295bc627a2bb7546b6764510e737efdbba5067..3cea68836eeaecfa1b97ba02ba72ee555f61d544 100644
--- a/modele/Cellule.js
+++ b/modele/Cellule.js
@@ -1,4 +1,5 @@
 const Component = require("./Component");
+const Nombre = require("./Nombre");
 
 class Cellule extends Component{
   
@@ -21,6 +22,11 @@ class Cellule extends Component{
             expression: this.#expression.toJSON() //voir si on garde expression ou si on met le type d'expression (ex nombre: 12)
         }
     }
+
+    readJSON(json){
+        //TODO: gerer les autres expressions par la suite
+        this.#expression = new Nombre(json.expression);
+    }
 }
 
 module.exports = Cellule;
\ No newline at end of file
diff --git a/modele/Component.js b/modele/Component.js
index b4bab166c26bdb8e47c31f7af647e8852248929d..790945a5e89131584ec056db711b66203b156d7a 100644
--- a/modele/Component.js
+++ b/modele/Component.js
@@ -8,6 +8,10 @@ class Component{
     getNom(){
         return this.#nom;
     }
+
+    setNom(name){
+        this.#nom = name;
+    }
 }
 
 module.exports = Component;
\ No newline at end of file
diff --git a/modele/Document.js b/modele/Document.js
index 52f6a7f0b8621da564d7ec0e5f70fb61dea1ccd4..9505b2140873f9fdbba74d7ee819607d3490f690 100644
--- a/modele/Document.js
+++ b/modele/Document.js
@@ -67,6 +67,21 @@ class Document extends Component{
         }
     }
 
+    readJSON(json){
+        super.setNom(json.nom);
+        this.#auteur = json.auteur;
+        this.#id = json.id;
+        this.#dateCreation = json.dateCreation;
+        this.#dateModification = json.dateModification;
+        
+        this.clearFeuilles();
+        json.feuilles.forEach(feuille => {
+            let f = new Feuille(this);
+            f.readJSON(feuille);
+            this.addFeuille(f);
+        });
+    }
+
 }
 
 module.exports = Document;
\ No newline at end of file
diff --git a/modele/Feuille.js b/modele/Feuille.js
index 70de6da7a70624c6c970f701d09fa3f0dabc64b4..62a0ba0eed42ad800ee8772b50a194f61fbdc17e 100644
--- a/modele/Feuille.js
+++ b/modele/Feuille.js
@@ -1,4 +1,5 @@
 const Component = require("./Component");
+const Cellule = require("./Cellule");
 
 class Feuille extends Component{
 
@@ -37,6 +38,22 @@ class Feuille extends Component{
             cells: cellsJSON
         }
     }
+
+    readJSON(json){
+        super.setNom(json.nom);
+        let tmp = [];
+        this.#cells = []; //reset du tableau
+
+        for (let i = 0; i < json.cells.length; i++){
+            json.cells[i].forEach(cell => {
+                let cellule = new Cellule(cell.numero);
+                cellule.readJSON(cell);
+                tmp.push(cellule);
+            });
+            this.#cells.push(tmp);
+            tmp = [];
+        }
+    }
 }
 
 module.exports = Feuille;
\ No newline at end of file