python django通过ajax向后端传json怎么解析

我的json内容是这样的:

{
    "type":"user",
    "ifor":[
        {
            "id":001,
            "name:"lison"
        },
        {
            "id":002,
            "name":"wei"
        }
    ]
}

在JS中我是使用jquery的ajax方法传的,这样写的:

$.ajax("url",{
    type:"post",
    data:{
        type:"user",
        ifor: [
            {
                id:001,
                name:"lison"
            },
            {
                id:002,
                name:"wei"
            }
        ]
    },
    success:function(){}
})

我的是python3.6,django是1.11.1,在django中的views.py中该怎么接收呢?我网上查了好多,有的说json.loads(request.body),有说simplejson.loads(request.raw_post_data)的,但貌似都有问题,请问大神该怎么接收并解析呢

阅读 5.8k
2 个回答

前端ajax:

data = {};
$.ajax({
    type: "post",
    url: "url",
    dataType: "json",
    data: JSON.stringify(data),
    success: function(result) {
    }
});

后端取值:

import json
data = json.loads(request.body)
print data['key']

你首先得确定你传给后端的内容, 是什么样的, 不能直接就是json.loads
假设view对应方法源码如下

def test(req):
    print(req.POST)   # 通过输出看看前端传过来的数据是什么
    return HttpResponse('test')

只有符合'{"aa":"xxx"...}'这样的json格式才能够被json.loads识别并反序列化, 如果传回来的结果不是这样的json格式, 那么就要调整前端的ajax, 以便能够构造出这样的数据, 具体可以通过dataType: json或者通过字符串拼接的方法构造都可以, 详情可以自行谷歌: ajax传递json数据

推荐问题
宣传栏