使用django获取并使用python嵌套列表到JS中

时间:2015-07-13 11:25:57

标签: javascript json django

我有一个显示一些数据的页面。它显示的数据需要采用JS Array格式(代表python嵌套列表)。

为了做到这一点,我使用了一个从django视图中获取数据的JS函数:

js function:

var getDataFromFiles1 = function(theUrl) {
    $.ajaxSetup({async: false});
    var xmlHttp = new XMLHttpRequest();
        xmlHttp.open( "GET", theUrl, false );
        xmlHttp.send( null );
        return xmlHttp.responseText;
};

views.py:

a = MyModel.objects.get(c=b, x=y)
json_object = json.dumps(a.data)
return HttpResponse(json_object, content_type="application/javascript")

但是,返回的数据是typeof字符串,我认为我可以使用JSON.parse()引入JS数组,但这不起作用:

var data = getDataFromFiles1(url);
console.log(data + " : " + typeof data)
data = JSON.parse(data)
console.log(data + " : " + typeof data)

并且上面包含的日志记录给出了:

"[[\"example\", \"example\", \"example\", \"example\", \"not set\"], [\"example\", \"example\", \"example\", \"example\", \"not set\"]]" : string

[["example", "example", "example", "example", "not set"], ["example", "example", "example", "example", "not set"]] : string

我错过了一些明显的东西吗?如何使用此数据创建JS Array对象(可以灵活地在加载时不使用模板标记删除数据?

2 个答案:

答案 0 :(得分:2)

您不会显示您的模型,但我猜a.data已经是JSON - 所以您要对其进行双重编码。

放弃json.dumps,然后返回HttpResponse(a.data, content_type="application/javascript")

答案 1 :(得分:1)

再次尝试JSON.parse(...)。由于content_type="application/javascript",可能Python端已经对它进行了JSON编码。