django-rest-framework:如何序列化已经包含JSON的字段? [英] django-rest-framework: How Do I Serialize a Field That Already Contains JSON?
问题描述
我有一个对象,一个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
返回响应(数据)
I am pretty new to the django-rest-framework, so could use some help.
I have an object with a TextField that is a string containing JSON.
I'm using django-rest-framework to serialize the whole object as JSON. However, this one string that is already JSON gets serialized as an encoded string containing the JSON rather than the JSON itself.
How can I tell the serializer to send this field as-is rather than trying to transform this string to JSON? Is there some sort of "ignore" decorator or override I can use? Or can I pre-parse this JSON before serializing?
This is the difference between having:
{"data": data}
and
{"data": "data"}
The latter being more of a nuisance to use on the client side...
You can simply decode the json into python object:
json_obj = json.loads(model.json_text)
Once you serialize your object, replace this field with the decoded object:
data = serializer.data
data["field"] = json_obj
return Response(data)
这篇关于django-rest-framework:如何序列化已经包含JSON的字段?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!