访问多维数组时出现问题

时间:2013-01-14 17:31:13

标签: javascript jquery

所以我正在运行一个$ .getJSON语句,我遇到了一些问题...这里是json:

{
    "K-6608-1-0": [
        {
            "Info": [
                {
                    "SVGFile": "46658.svg",
                    "Name": "Faucet Parts"
                }
            ],
            "Parts": [
                {
                    "Cod":"70012",
                    "Name":"Ruela de Parafuso Reforçado B2",
                    "Price":"$100"
                },
                {
                    "Cod":"71131",
                    "Name":"Parafusasdasdasdsdao Reforçado B2",
                    "Price":"$45"
                },
                {
                    "Cod":"78208",
                    "Name":"Tubo de Conexão R2D2",
                    "Price":"$150"
                }
            ]
        }
    ]
}

所以,假设我以这种方式制作了getJSON:

$.getJSON('test.json', function(data){
   alert(data["K-6608-1-0"]["Info"]["SVGFile"]);
})

为什么此代码不返回“46658.svg”?哪里出错?

提前致谢^^

3 个答案:

答案 0 :(得分:3)

K-6608-1-0Info是数组,因此您必须设置位置。

alert(data["K-6608-1-0"][0]["Info"][0]["SVGFile"]);
                         ^          ^

答案 1 :(得分:2)

那是因为data["K-6608-1-0"]是一个数组,所以要访问你想要的属性,首先你必须访问这个数组的元素bi它的索引(data["K-6608-1-0"][0]["Info"]也是一个数组):

$.getJSON('test.json', function(data){
    alert(data["K-6608-1-0"][0]["Info"][0]["SVGFile"]);
    //                       ^          ^
});

答案 2 :(得分:0)

alert(data["K-6608-1-0"][0]["Info"]["SVGFile"]);
                        ^^^--- add this

你有嵌套在嵌套在......中的数组中的对象的数组。第一个K-实际上是一个数组。你可能也需要在更深层次上做同样的事情。