前端JSON.stringify后,Django后端接收数据为何自动转为dict?
问题解析
- 前端执行
JSON.stringify({payload: payload})后,确实会将JavaScript对象转换为JSON格式的字符串,你用console.log看到类型是string是完全正确的。 - 后端Django(尤其是使用Django REST Framework,或启用了对应JSON解析中间件的情况下)会自动识别请求头里的
Content-Type: application/json,自动读取请求体中的JSON字符串,调用Python内置的json.loads()将其解析为Python字典,最终把解析后的字典存入request.data中。 - 这就导致你在后端获取到的
request.data['payload']已经是解析完成的Python字典,不需要再手动调用json.loads()——强行调用的话,因为传入的是字典而非字符串,自然会报错,直接通过键名访问即可获取数据。
内容的提问来源于stack exchange,提问作者user18431308
相关产品推荐
相关产品推荐

