Jquery Python中的JSON与Ajax

Jquery Python中的JSON与Ajax,jquery,python,ajax,json,django,Jquery,Python,Ajax,Json,Django,我已经有这个问题好几天了,Django的回复是 di = { 0 : 'bat' , 1 : 'ball' } js = json.dumps(js , indent=4) print js """ { "0": "bat", "1": "ball" } """ return HttpResponse(js) 现在在我的Ajax函数中: $.ajax({ type: "POST", url: "/some/url",

我已经有这个问题好几天了,Django的回复是

di = { 0 : 'bat' , 1 : 'ball' } 
js = json.dumps(js , indent=4)

print js

"""
{
     "0": "bat", 
     "1": "ball"
}
"""
return HttpResponse(js)
现在在我的Ajax函数中:

$.ajax({

        type: "POST",
        url: "/some/url",
        data: {
            'name': "myname",
            csrfmiddlewaretoken: '{{ csrf_token }}'
        },
        dataType: "json",

        success: function (data) {

            alert(data)

            var to_parse = $.parseJSON(data);

            alert(to_parse)


        }
    });
    return false
}
我希望在
alert(data)
中包含json值,但它得到的却是:
[object object]


我哪里出错了?

因为您通过“dataType:”json”选项告诉Jquery您的数据是json,Jquery继续并将您的文本转换为javascript对象。因此,当您发出警报(数据)时,您得到的是对象,而不是文本。您应该删除将数据parese为json的行,或者从jquery选项中删除dataType:json

为了明确地回答您的问题,用alert(JSON.stringify(data))替换alert(data))

使用console.log(data)

这将向控制台显示内容,您可以通过按F12并单击“控制台”在Google Chrome中查看控制台

您是否尝试过“警报(数据[0])”,JSON有点像数组,您必须获取对象的索引才能显示数据我哪里出错了?:您正在使用
alert()
作为调试工具。您的AJAX调用起作用并生成了一个JavaScript对象
alert()
但是不会打印该对象的内容。console.log(数据)将显示所需的数据,在Google Chrome中,您可以按F12转到调试器,然后查看控制台。