如何在 django 中解析这个 JSON?
Posted
技术标签:
【中文标题】如何在 django 中解析这个 JSON?【英文标题】:How to parse this JSON in django? 【发布时间】:2017-06-07 01:43:23 【问题描述】:我正在发送以下格式的数据
$.ajax(
url: "http://localhost:8000/loginrest/",
data: JSON.stringify('user':'admin','password':'zyz'),
processData: false,
type: 'POST',
error: function(xhr, error)
console.debug(xhr); console.debug(error);
,
success: function(data)
alert(data);
);
对应的django代码:
class LoginView(APIView):
def get(self, request, format=None):
return Response('detail': "GET Response")
def post(self, request, format=None):
try:
data = request.DATA
except ParseError as error:
return Response(
'Invalid JSON - 0'.format(error.detail),
status=status.HTTP_400_BAD_REQUEST
)
print(data)
print(request.POST)
try:
print(QueryDict(request.body).get('user'))
except:
print("error")
在终端中
<QueryDict: u'"user":"admin","password":"zyz"': [u'']>
<QueryDict: u'"user":"admin","password":"zyz"': [u'']>
error
我的问题是有什么简单的方法来解析这个绕过子串 还是我在 ajax 中发送 JSON 时做错了什么?
【问题讨论】:
试试 data = request.data。然后 QueryDict(data).get('user') 【参考方案1】:您不必JSON.stringify()
提供给 jQuery 的数据,这就是您获得“双 JSON”的原因。见例子:
var postDataSth = JSON.stringify(asd: 123);
$.ajax(
url: 'http://url.com',
method: 'POST',
data:
data1: postDataSth,
data2: 'KILLER_QUEEN',
foo: 'bar'
,
success: function (foo)
if (foo)
console.log(foo.bar);
,
error: function ()
console.warn('request failed!');
);
【讨论】:
这种格式给了我processData: false
标志?
不,我没有。像一块蛋糕伴侣一样工作。非常感谢。【参考方案2】:
如果你只是想获取数据:
data = json.loads(request.data)
user = data['user']
您已经发送了 json 数据,所以这应该可以工作。
【讨论】:
以上是关于如何在 django 中解析这个 JSON?的主要内容,如果未能解决你的问题,请参考以下文章