嗨,我制作了一个自定义 JSONEncoder,碰巧遇到了这个问题。当我使用dumps
simplejson 的函数时,嵌套对象被序列化为字符串。例如我使用这个:
simplejson.dumps({'lat': obj.lat, 'lon': obj.lon})
得到这个:
{
website: "http://something.org",
location: "{"lat": 12.140158037163658, "lon": -86.24754807669069}"
}
如果您看到位置对象带有双引号,有没有一种方法可以指定要正确转储为 JSON 对象的位置对象(不带双引号)。
编辑
class jsonEncoder(simplejson.JSONEncoder):
def default(self, obj):
isinstance(obj, db.GeoPt):
return simplejson.dumps({'lat': obj.lat, 'lon': obj.lon})
else:
return simplejson.JSONEncoder.default(self, obj)