{{tag>dev python json serialisation javascript}} :TODO_DOCUPDATE: ====== Sérialiser un type(classe) quelconque en JSON ====== Si on tente de sérialiser directement une instance d'une classe de son cru via le module **json** on obtient en général une erreur : Dans cet exemple le type Memo est une Classe complexe conçue pour une application Flask et permettant d'enregistrer les données dans une base via l'ORM SQLAlchemy >>> import json >>> # On enregistre deux objets de type Memo dans la base >>> db.session.add(Memo("toto", 10, 10)) >>> db.session.add(Memo("tata", 33, 20)) >>> db.session.commit() >>> # On récupère tous les mémos sour forme de liste >>> memos = Memo.query.all() >>> type(memos) >>> type(memos[0]) >>> # La sérialisation directe de la liste échoue : Une façon simple de permettre la sérialisation est de définir une méthode **to_json()** dans votre classe. La méthode doit retourner un dictionnaire avec des valeurs scalaires (simples ou types de base) ===== Références ===== * https://pynative.com/make-python-class-json-serializable/ * https://blog.alphorm.com/maitriser-la-manipulation-json-en-python * https://stackoverflow.com/questions/3768895/how-to-make-a-class-json-serializable