Am 29.07.2010 13:35, schrieb Tarek Ziadé:
What about adding in the json package the ability for an object to provide a different object to serialize ? This would be useful to translate a class into a structure that can be passed to json.dumps
So, it __json__ is provided, its used for serialization instead of the object itself:
import json class MyComplexClass(object):
.... def __json__(self): .... return 'json' ....
o = MyComplexClass() json.dumps(o)
You can do this with a very short subclass of the JSONEncoder:
class MyJSONEncoder(JSONEncoder): def default(self, obj): return obj.__json__() # with a useful failure message
I don't think it needs to be built into the default encoder.