0

如何从 JSON 复杂对象/多维数组中提取多个值?

{
    "Items": [{
        "node": {
            "titre": "myTitle",
            "representation": {
                "1": "09 Octobre 2012 - 19:30",
                "2": "10 Octobre 2012 - 20:30",
                "3": "11 Octobre 2012 - 19:30"
            },
            "photo": {
                "1": "photo_1.jpg",
                "2": "photo_2.jpg",
                "3": "photo_3.jpg",
                "4": "photo_4.jpg"
            }
        }
    }]
}

目前,我正在使用:

$.getJSON(url, function (data) {
    $.each(data.Items, function (i, node) {
        var titre = node.node.titre;
        var representation = node.node.representation;
        var photo = node.node.photo;
    }
    });

结果 fortitre很好,但是对于representationand photos,它呈现:[object Object]

4

2 回答 2

2

那是因为你在这里的照片是一个物体..

要访问其中的值,您需要使用键 1 , 2 ,3, 4

 So var photo = node.node.photo;  // Is an Object 

 var photo1 = node.node.photo["1"] // photo_1.jpg
   var photo2 = node.node.photo["2"] // photo_2.jpg
   var photo3 = node.node.photo["3"] // photo_3.jpg

// 同样的逻辑适用于表示

 var representation1 = node.node.representation["1"] // 09 Octobre 2012 - 19:30
   var representation2 = node.node.representation["2"] // 10 Octobre 2012 - 20:30
   var representation3 = node.node.representation["3"] // 11 Octobre 2012 - 19:30

要迭代这个,你可以试试这个

$.each(node.node.photo , function(key , value){

    console.log( value);
});

检查小提琴

编辑

entry = {
                representation :[ sps.node.representation["1"],sps.node.representation["2"],sps.node.representation["3"] ],
                title: sps.node.titre,
                image: sps.node.image,
                acteurs: sps.node.acteurs,
                acteursuite: sps.node.acteurs_suite,
                lien: sps.node.lien,
                description: sps.node.corps,
                pics: sps.node.photo
            };

for( var i = 0; i< entry.representation.length ; i++){

     alert(entry.representation[i]);
}

// 小提琴

于 2012-10-12T15:19:47.340 回答
0

照片属性不是数组。它是一个对象。属性值应包含在 im[ ]中。

于 2012-10-12T15:09:13.687 回答