我的回复代码
from rest_framework.response import Response
import json
responseData = { 'success' : True }
return Response(json.dumps(responseData))
在执行curl
或通过浏览器访问响应时的显示方式。
"{\"success\": true}"
为什么正斜线?如何删除它们?
答案 0 :(得分:16)
您将数据呈现为JSON 两次。移除json.dumps()
来电。
与常规
HttpResponse
对象不同,您不会使用呈现的内容实例化Response
个对象。 而是传递未呈现的数据,可能包含任何Python原语。
然后Django REST框架负责为您生成JSON。由于您给它一个字符串,该字符串是JSON编码的再次:
>>> import json
>>> responseData = { 'success' : True }
>>> print json.dumps(responseData)
{"success": true}
>>> print json.dumps(json.dumps(responseData))
"{\"success\": true}"
框架使用Content Negotiation来确定要使用的序列化格式;这样,您的API客户端也可以请求将数据编码为YAML或XML,例如。
REST框架通过提供
Response
类来支持HTTP内容协商,该类允许您返回可以呈现为多种内容类型的内容,具体取决于客户端请求。