如何在Python Django中返回字典并在JavaScript中查看?

9 投票
4 回答
26344 浏览
提问于 2025-04-16 20:13

我在我的视图中返回了这个:

    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 ) )

撰写回答