29 Jul
2010
29 Jul
'10
12:39 p.m.
On Thu, Jul 29, 2010 at 2:22 PM, Georg Brandl
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.
Yes, but you need to customize in that case the encoding process and own it. Having a builtin recognition of __json__ would allow you to pass your objects to be serialized to any third party code that uses a plain json.dumps. For instance, some web kits out there will automatically serialize your objects into json strings when you want to do json responses. e.g. it becomes a builtin adapter Cheers Tarek