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) <class 'list'> >>> type(memos[0]) <class 'fairymaps.models.Memo'> >>> # 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)