在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的主要内容,如果未能解决你的问题,请参考以下文章
forEach 在javascript中同时循环遍历两个数组[重复]