首頁  >  問答  >  主體

python3.x - 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)的,但貌似都有問題,請問大神該怎麼接收並解析呢

过去多啦不再A梦过去多啦不再A梦2686 天前858

全部回覆(2)我來回復

  • 女神的闺蜜爱上我

    女神的闺蜜爱上我2017-06-12 09:25:52

    前端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']

    回覆
    0
  • 代言

    代言2017-06-12 09:25:52

    你首先得確定你傳給後端的內容, 是什麼樣的, 不能直接就是json.loads
    假設view對應方法源碼如下

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

    只有符合'{"aa":"xxx"...}'這樣的json格式才能夠被json.loads識別並反序列化, 如果傳回來的結果不是這樣的json格式, 那麼就要調整前端的ajax, 以便能夠構造出這樣的數據, 具體可以通過dataType: json或者通過字符串拼接的方法構造都可以, 詳情可以自行谷歌: ajax傳遞json數據

    回覆
    0
  • 取消回覆