<pre><code>import json
class Script(object):
def __init__(self, name, version, dependency):
self.name = name
self.version = version
self.dependency = dependency
def toJSON(self):
return dict(name = self.name, version = self.version, dependency = self.dependency)
class Dependency(object):
def __init__(self, name, version):
self.name = name
self.version = version
def toJSON(self):
return dict(name = self.name, version = self.version)
class ComplexEncoder(json.JSONEncoder):
def default(self, obj):
if hasattr(obj,'toJSON'):
return obj.toJSON()
else:
return json.JSONEncoder.default(self, obj)
listOfScripts = [Script(20, 3, [Dependency(39, 2), Dependency(30, 4)]),
Script(21, 4, [Dependency(65, 9), Dependency(12, 5)])]
print([json.dumps(x.toJSON(), cls=ComplexEncoder) for x in listOfScripts])
</code></pre>
<p>输出为:</p>
<pre><code>['{"name": 20, "version": 3, "dependency": [{"name": 39, "version": 2}, {"name": 30, "version": 4}]}', '{"name": 21, "version": 4, "dependency": [{"name": 65, "version": 9}, {"name": 12, "version": 5}]}']
</code></pre>