User Tools

Site Tools


object_-_json

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
object_-_json [2015/06/19 12:26] – created 86.73.246.173object_-_json [2015/08/04 18:13] (current) 78.250.193.162
Line 1: Line 1:
 +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 (par exemple si je me souviens bien, si le json définit un objet de type //machin//, il faut que le type //machin// soit défini au préalable), 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 :==
 <code># -*- coding: utf-8 -*- <code># -*- coding: utf-8 -*-
 import jsonpickle import jsonpickle
Line 29: Line 37:
 print o_json print o_json
 print(o2.myFirstProperty) print(o2.myFirstProperty)
-print(o2.mySecondProperty)</code>+print(o2.mySecondProperty) 
 + 
 +f = open("savedJSON.json",'w'
 +f.write(o_json) 
 +f.close()</code> 
 + 
 +== file -> json -> objet :== 
 +<code># -*- 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)</code>
object_-_json.1434709580.txt.gz · Last modified: 2015/06/19 12:26 by 86.73.246.173