无法访问所有json属性

时间:2015-11-06 03:28:58

标签: javascript json

我有这个json结构,由于某种原因我无法访问其他属性。我只能"访问"通过主要属性,如typeproperties等等,使用该层次结构级别。但我无法访问iconiconURLtitle。数据在那里,但我可以单独访问。

如果我使用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);
        }
    }
});

2 个答案:

答案 0 :(得分:1)

您是否尝试将markerRE声明为

var markerRE = []; //without {}

我以自己的方式尝试但不确定,我不知道为什么但是使用{}使得计数器从1而不是0开始。

答案 1 :(得分:0)

对于我来说,上面做的事情并没有多大意义,只要按照数据中的键数循环即可。但是我认为你的一个问题也是你在其中已经有一个空对象来实例化markerRE。而不是仅仅使它成为一个空数组[]。所以console.log(markerRE [0] .properties.title);将无效,因为markerRE [0]是一个空对象