在javascript中循环遍历python-dictionary-turned-into-json

Posted

技术标签:

【中文标题】在javascript中循环遍历python-dictionary-turned-into-json【英文标题】:Looping through python-dictionary-turned-into-json in javascript 【发布时间】:2011-01-27 22:29:54 【问题描述】:

在编写 django 应用程序时,我在 jQuery ajax 调用中返回以下 json:


    "is_owner": "T", 
    "author": "me",
    "overall": "the surfing lifestyle", 
    "score": "1", 
    "meanings": 
        "0": "something", 
        "1": "something else", 
        "3": "yet something else", 
        "23": "something random"
        , 
    "user vote": "1"

javascript/jQuery 回调函数中,我可以很容易地访问 is_owner、author 等。

is_owner = json.is_owner;
author = json.author;

但是对于含义,数字会根据它从服务器中提取的内容而有所不同。在服务器端的含义部分,现在我正在做的是像这样构建一个字典:

meanings_dict = 
meanings = requested_tayke.meanings.all()
for meaning in meanings:
    meanings_dict[meaning.location] = meaning.text

然后返回一个我这样创建的 json:

test_json = simplejson.dumps('is_owner':is_owner, 'overall':overall, 'score':str(score),'user vote':str(user_vote), 'author': author, 'meanings' : meanings_dict )
print test_json

return HttpResponse(test_json)

我的问题是:如何在 javascript 中访问我的 json 中的“含义”数据?我需要遍历所有这些数据。也许我需要以不同的方式将它加载到 json 中。我可以完全控制服务器端和客户端,因此我愿意更改其中任何一个以使其正常工作。 另外值得注意的是:我没有使用 Django 的序列化功能。我无法让它适应我的情况。

【问题讨论】:

【参考方案1】:

它的工作方式(大致)类似于 dict 在 python 中的工作方式:您可以迭代 json 对象中的键。

var meanings = json.meanings;
for (var key in meanings )
    var value = meanings[key]; 

如果你使用一个将元素添加到对象原型的顽皮库,它可能会崩溃,因此出于防御目的,已建立的良好做法是编写

for(var key in meanings)
    if (meanings.hasOwnProperty(key))
        var value = meanings[key];

【讨论】:

这就是我喜欢***的原因。 :)

以上是关于在javascript中循环遍历python-dictionary-turned-into-json的主要内容,如果未能解决你的问题,请参考以下文章

在 JavaScript 中循环遍历数组的最快方法是啥?

在 JavaScript 中循环遍历数组的最快方法是啥?

javascript中常见的几种循环遍历

forEach 在javascript中同时循环遍历两个数组[重复]

如何在 Javascript 中循环遍历 HTML 表中的复选框行

在javascript中循环遍历数组中的对象