在Python中,我喜欢这样做dict并在json中返回:
class Thing:
id = 1
name = 'name'
user = User()
obj = Obj()
upd = time
def to_dict(this, user=False, obj=False):
return {
'id': self.id,
'name': self.name,
'upd': self.upd.strftime('%Y-%m-%d %H:%M:%S'),
'user': self.user.to_dict() if opt else None,
'obj': self.obj.to_dict() if obj else None,
}
然后json.dumps(thing.to_dict(**opts))
。 opts
来自网络请求。
当然在实际项目中的领域更多。有些字段应该是dict或不是。
是否有任何解决方案不会仅针对json响应制作不同的结构?或者将可选项添加到MarshalJSON()