我有一个显示一些数据的页面。它显示的数据需要采用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对象(可以灵活地在加载时不使用模板标记删除数据?
答案 0 :(得分:2)
您不会显示您的模型,但我猜a.data
已经是JSON - 所以您要对其进行双重编码。
放弃json.dumps
,然后返回HttpResponse(a.data, content_type="application/javascript")
。
答案 1 :(得分:1)
再次尝试JSON.parse(...)
。由于content_type="application/javascript"
,可能Python端已经对它进行了JSON编码。