django-rest-framework:如何序列化已经包含JSON的字段?


问题内容

我对django-rest-framework很陌生,因此可以使用一些帮助。

我有一个TextField对象,该对象是一个包含JSON的字符串。

我正在使用django-rest-
framework将整个对象序列化为JSON。但是,这个已经是JSON的字符串将被序列化为包含JSON而不是JSON本身的编码字符串。

我如何告诉序列化程序按原样发送此字段,而不是尝试将此字符串转换为JSON?我可以使用某种“忽略”装饰器或替代方法吗?还是可以在序列化之前预解析此JSON?

这是具有:

{"data": data}

{"data": "data"}

后者在客户端使用时比较麻烦。


问题答案:

您可以简单地将json解码为python对象:

json_obj = json.loads(model.json_text)

序列化对象后,请将该字段替换为已解码的对象:

data = serializer.data
data["field"] = json_obj
return Response(data)