我想用JSON编码对象.但是,我无法弄清楚如何在没有字符串转义的情况下进行输出.
import json
class Abc:
def __init__(self):
self.name="abc name"
def toJSON(self):
return json.dumps(self.__dict__, cls=ComplexEncoder)
class Doc:
def __init__(self):
self.abc=Abc()
def toJSON(self):
return json.dumps(self.__dict__, cls=ComplexEncoder)
class ComplexEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Abc) or isinstance(obj, Doc):
return obj.toJSON()
else:
return json.JSONEncoder.default(self, obj)
doc=Doc()
print doc.toJSON()
Run Code Online (Sandbox Code Playgroud)
结果是(转储返回一个字符串表示,这就是"被转义"的原因)
{"abc": "{\"name\": \"abc name\"}"}
Run Code Online (Sandbox Code Playgroud)
我想要一些不同的东西.预期的结果是
{"abc": {"name": "abc name"}"}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何...任何提示?
提前致谢.