class MyObject:
# ...
# MyObject has 3 properties: name (a string), number (an int), and parent (a MyObject)
@staticmethod
def serialize(obj):
return {
"name": obj.name,
"number": obj.number,
"parent": obj.parent
}
# ...
simplejson.dumps(myObjInstance, default=MyObject.serialize)
The cool thing is that dumps
will, like every other JSON-serializable object, call the serialization method recursively. That is, obj.parent
will get serialized as well, without any further action from you.2. If all you want to do is 1-1 map instance variable names to their respective values, you can use some built-in Python magic. Whenever you want to serialize a more complex object (again, only using a 1-1 variable-value map), just call this line:
simplejson.dumps(anyObj, default=lambda obj: obj.__dict__)
For the given instance of
MyObject
, it will behave identically to the aforementioned serialize
method.
Note: The 2nd one works for me, so I don't have to write a serialize method for my class.
No comments:
Post a Comment