具有多个值的JSON对象

时间:2012-10-12 14:43:45

标签: jquery arrays json

如何从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;
    }
    });

titre的结果很好,但对于representationphotos,它会呈现:[object Object]

2 个答案:

答案 0 :(得分: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);
});

<强> Check FIDDLE

修改

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]);
}

//     FOR FIDDLE

答案 1 :(得分:0)

Photo属性不是数组。这是一个对象。属性值应附在[ ]

之后