[Python-ideas] Json object-level serializer

M.-A. Lemburg mal at egenix.com
Thu Jul 29 14:31:11 CEST 2010


Georg Brandl wrote:
> Am 29.07.2010 13:35, schrieb Tarek Ziadé:
>> Hello,
>>
>> 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)
>> '"json"'
> 
> 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

Does that also work with the JSON C extension ?

> I don't think it needs to be built into the default encoder.

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Jul 29 2010)
>>> Python/Zope Consulting and Support ...        http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ...             http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...        http://python.egenix.com/
________________________________________________________________________

::: Try our new mxODBC.Connect Python Database Interface for free ! ::::


   eGenix.com Software, Skills and Services GmbH  Pastor-Loeh-Str.48
    D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg
           Registered at Amtsgericht Duesseldorf: HRB 46611
               http://www.egenix.com/company/contact/



More information about the Python-ideas mailing list