我有这个json结构,由于某种原因我无法访问其他属性。我只能"访问"通过主要属性,如type
,properties
等等,使用该层次结构级别。但我无法访问icon
,iconURL
,title
。数据在那里,但我可以单独访问。
如果我使用console.log(markerRE[i].properties)
,它会显示所有属性,但如果我只想要标题,则控制台会触发can't read property properties of undefined
。
var markerRE = [{}]; //JSON ARRAY
$.ajax({
url: 'consulta4.php',
data: {},
method: 'POST',
dataType: 'json',
success: function (data) {
for (var i = 0; i < Object.keys(data).length; i++) {
markerRE.push({
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [data[i].longitude, data[i].latitude]
},
"properties": {
"title": "Emergencia: " + data[i].priority,
"id": data[i].id_emergency,
//"descripcion":"<button class='RE'>oisdjos</button>", Forma alternativa de añadir html
"icon": {
"iconUrl": data[i].imagen,
"iconSize": [50, 50], // size of the icon
"iconAnchor": [25, 50], // point of the icon which will correspond to marker's location
"popupAnchor": [0, -25], // point from which the popup should open relative to the iconAnchor
"className": "dot"
}
}
}
);
console.log(markerRE[i].properties.title);
}
}
});
答案 0 :(得分:1)
您是否尝试将markerRE声明为
var markerRE = []; //without {}
我以自己的方式尝试但不确定,我不知道为什么但是使用{}使得计数器从1而不是0开始。
答案 1 :(得分:0)
对于我来说,上面做的事情并没有多大意义,只要按照数据中的键数循环即可。但是我认为你的一个问题也是你在其中已经有一个空对象来实例化markerRE。而不是仅仅使它成为一个空数组[]。所以console.log(markerRE [0] .properties.title);将无效,因为markerRE [0]是一个空对象