如何在Python Django中返回字典并在JavaScript中查看?
我在我的视图中返回了这个:
data = {'val1' : 'this is x', 'val2' : True}
return HttpResponse(data)
我想在我的JavaScript中使用这个字典里的信息。大概是这样的:
function(data) {
if (data["val2"]) {
//success
alert(data["val1"]);
}
}
但是我的JavaScript没有工作。没有弹出提示框,我知道在我的Python视图中字典是有信息的。
我该如何在我的JavaScript中读取这些信息呢?
好的,解决这个视图的问题的方法是用simplejson.dumps(data)。现在当我在我的模板中的JavaScript里做一个alert(data)时,我得到了{'val1' : 'this is x', 'val2' : True}。
那么我该如何处理第二个问题,也就是像这样读取值呢:
function(data) {
if (data["val2"]) {
//success
alert(data["val1"]);
}
}
更新: simplejson.dumps(data)会把字典转换成字符串。所以在JavaScript中,你需要把这个字符串转换成对象。这是最简单但显然不安全的方法。
var myObject = eval('(' + myJSONtext + ')');
4 个回答
2
你不能直接使用你手上的Python对象,必须先把它转换成JSON字符串。可以看看下面的文档。
http://docs.python.org/library/json.html 还有 http://www.json.org/
10
JSON是一种最简单的数据传输方式(你也可以使用XML)。
在Python中:
import json data = {'val1': "this is x", 'val2': True} return HttpResponse(json.dumps(data))
在JavaScript中:
function (data) { data = JSON.parse(data); if (data["val2"]) { alert(data["val1"]); } }
17
非常简单:
import json
data = {'val1' : 'this is x', 'val2' : True}
return HttpResponse( json.dumps( data ) )