如何从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
的结果很好,但对于representation
和photos
,它会呈现:[object Object]
。
答案 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属性不是数组。这是一个对象。属性值应附在[ ]
。