可以在返回的json数据中使用一个属性来表示该数据对应的模型类型,然后根据这个属性值将json数据转换成对应的模型对象。例如:
{
"data": [
{
"type": "user", // 表示该数据对应的是User模型
"id": "1",
"name": "Alice"
},
{
"type": "book", // 表示该数据对应的是Book模型
"id": "2",
"title": "The Great Gatsby"
}
]
}
在后端代码中,我们可以定义不同的模型类来表示不同的数据类型,然后根据请求的参数或数据的属性值来判断应该设置哪个模型来解析json数据:
class User:
def __init__(self, id, name):
self.id = id
self.name = name
class Book:
def __init__(self, id, title):
self.id = id
self.title = title
def get_data(request):
data = request.json["data"]
models = {"user": User, "book": Book}
result = []
for d in data:
model_type = d["type"]
model_class = models[model_type]
model_data = {k:v for k, v in d.items() if k != "type"}
model = model_class(**model_data)
result.append(model)
return result