object_-_json
This is an old revision of the document!
Il est possible d'utiliser le module json de python, mais aussi le module jsonpickle, plus simple d'usage, afin de transformer des objets en json, et inversement.
Notes
Pour pouvoir faire l'opération json → objet, il est nécessaire que l'objet soit défini, il sera sinon transformé en dictionnaire.
Par exemple, imaginons un programme qui ouvre un .json contenant la serialisation json d'un objet <machin>, et en décode le contenu. Si la class machin est définie au sein du programme, la serialisation json sera convertie en objet de type machin. Si la classe n'est pas définie, la sérialisation deviendra un objet de type dict dont les propriétés seront accessibles sous la forme monDict[“mapropriété”].
objet -> json -> file :
# -*- coding: utf-8 -*- import jsonpickle class myObject(object): """Basic object""" myFirstProperty = None mySecondProperty = None class myObjectInterface(object): """Generic interface for myObject""" def __init__(self,target): self.target = target def updateMyFirstProperty(self,newValue): self.target.myFirstProperty = newValue def updateMySecondProperty(self,newValue): self.target.mySecondProperty = newValue o = myObject() _o = myObjectInterface(o) _o.updateMyFirstProperty('test') _o.updateMySecondProperty('essai') o_json = jsonpickle.encode(o) o2 = jsonpickle.decode(o_json) print o_json print(o2.myFirstProperty) print(o2.mySecondProperty) f = open("savedJSON.json",'w') f.write(o_json) f.close()
file -> json -> objet :
# -*- coding: utf-8 -*- import jsonpickle class myObject(object): """Basic object""" myFirstProperty = None mySecondProperty = None class myObjectInterface(object): """Generic interface for myObject""" def __init__(self,target): self.target = target def updateMyFirstProperty(self,newValue): self.target.myFirstProperty = newValue def updateMySecondProperty(self,newValue): self.target.mySecondProperty = newValue f = open("savedJSON.json","r+") o_json = f.read() f.close() o = jsonpickle.decode(o_json) print o_json print o print(o.myFirstProperty) print(o.mySecondProperty)
object_-_json.1434711297.txt.gz · Last modified: 2015/06/19 12:54 by 86.73.246.173