django rest api:JSON 解析错误 - 无法解码 JSON 对象

Posted

技术标签:

【中文标题】django rest api:JSON 解析错误 - 无法解码 JSON 对象【英文标题】:django rest api: JSON parse error - No JSON object could be decoded 【发布时间】:2016-07-21 21:16:11 【问题描述】:

我正在使用邮递员为我的 django 视图创建一个 POST 请求

@csrf_exempt
@api_view(['POST'])
def create_user(request):
    data = JSONParser().parse(request)
    serializer = CaretakerSerializer(data=data)
    if serializer.is_valid():
        serializer.save()
        return JSONResponse(serializer.data, status=201)
    return JSONResponse(serializer.errors, status=400)

但我收到以下错误:


  "detail": "JSON parse error - No JSON object could be decoded"

当尝试打印我的 request.body 时,我得到以下信息:

------WebKitFormBoundaryrg1JNLvBOEfjkQAT
Content-Disposition: form-data; name="name"

Rubencito
------WebKitFormBoundaryrg1JNLvBOEfjkQAT
Content-Disposition: form-data; name="email"

rubencito@yahoo.com
------WebKitFormBoundaryrg1JNLvBOEfjkQAT--

这是邮递员截图:

【问题讨论】:

【参考方案1】:

好吧,您不是在发送 json,而是在发送带有名称/值对的常规 POST 请求。

您需要将邮递员切换为“原始”格式并输入类似"name": "X", "email":"Y"的内容

然后在 python 端,您可以将其读取为json.loads(request.body)

【讨论】:

我们如何在 django 视图中获取表单数据?

以上是关于django rest api:JSON 解析错误 - 无法解码 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

无法使用视图名称 (django-rest-framework) 解析超链接关系的 URL

api rest 调用更新 django 模型时出现错误 415

向 Django REST Framework 发送 jQuery 请求导致找不到 JSON 对象错误

(二)Django REST实践:最简单的REST API实现

JSON:带有 django-rest-framework-json-api 和 JWT 的 API

Json解析django rest框架