En utilisant la pyramide, j'ai une hiérarchie d'objets que je veux sauvegarder comme json.Comment réutiliser un rendu json de la pyramide personnalisée à partir d'un __json__ ou d'un adaptateur appelé?
Certains de ces objets ne sont pas hors de la boîte JSON sérialisable donc je soit mettre en œuvre JSON ou se sont inscrits à un json_renderer personnalisé de l'adaptateur que je me suis inscrit (donc je ne dois pas arranger les choses de singe comme datetime). Comme ils sont imbriqués (par exemple, il y a un datetime plus bas dans cette hiérarchie), je ne peux pas appeler json.dumps dans mes classes json car il ne connaît pas les adaptateurs.
J'ai essayé de lire la source, et d'exécuter ceci par le débogueur et l'impression que je pourrais aller tirer le moteur de rendu du registre et tripoter avec cela? Mais je ne pense pas que ce soit la méthode prévue. Sûrement il y a quelque chose de plus propre? Malheureusement, tous les exemples dans les docs sont triviaux.
Comment est-ce que je peux passer la sérialisation au rendu json personnalisé d'appel à json_dump_using_renderer()?
def custom_json_renderer():
def datetime_adapter(obj, request):
return obj.isoformat()
json_renderer = JSON()
json_renderer.add_adapter(datetime.datetime, datetime_adapter)
class Whatever(object):
def __init__(self, item):
self.item = item
def __json__(self):
return "{ item: " + json_dump_using_renderer(obj.items) + "}"
Je n'étais pas au courant que la méthode __json__ pourrait également être passé la demande, merci. – juhanic