我正在向脚本发送JSON数组以进行进一步处理。 JSON数组包含一堆对象,每个对象都包含另一个对象数组。我需要知道的是如何访问这些嵌套对象中的值。因此,例如,如果脚本收到以下内容:
petlist = [
{"cats":[
{"catName":"Felix","catType":"British short haired"}
]
},
{"dogs":[
{"dogName":"Fido","dogType":"Labrador"}
]
},
{"fish":[
{"fishName":"Bob","fishType":"Goldfish"}
]
},
{"birds":[
{"birdName":"Polly","birdType":"Parrot"}
]
}
]
然后我如何解释a)dogName,b)birdType,或c)整个猫对象?
另外,我的术语是否正确?据我所知,方括号中的东西是一个数组,而花括号中的东西是一个对象。
编辑:我在Javascript中构建JSON,然后我需要访问Jade模板中的元素(在'each'循环中)
由于
答案 0 :(得分:2)
我稍微改变了你的JSON,因为我觉得使用起来并不是很有趣。基本上我只是遍历对象,这就是为什么我认为你应该有一个像名字一样的键而不是dogName,catName等等。
您可以在此JSFiddle
中找到有关Jade的工作示例HTML
<div id="jadeoutput"></div>
<pre id="jadeinput" style="display:none">
- console.log(petlist)
h1 List
ul.list
- for(var i in petlist)
li= "Item - "+ petlist[i].name
- for(var j in petlist[i].pets)
li= "Pet - " + petlist[i].pets[j].name + " " + petlist[i].pets[j].type
</pre>
的JavaScript
$(function() {
var json = {
"petlist" : [
{
"name" : "cats",
"pets":
[
{ "name":"Felix","type":"British short haired"}
]
},
{
"name" : "dogs",
"pets":
[
{"name":"Fido","type":"Labrador"}
]
},
{
"name" : "fish",
"pets":
[
{"name":"Bob","type":"Goldfish"}
]
},
{
"name" : "birds",
"pets" :
[
{"name":"Polly","type":"Parrot"}
]
}
]};
$("#jadeoutput").html(jade.compile($("#jadeinput").html())(json));
});