寻址JSON数组中的对象

时间:2016-07-08 11:55:35

标签: javascript arrays json pug

我正在向脚本发送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'循环中)

由于

1 个答案:

答案 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));
});