从JSON解析后,Javascript获取对象的名称

时间:2014-06-19 02:54:58

标签: javascript json

考虑以下JSON字符串:

  

[{" ElementID1" {"纬度":" 10.02483""经度":" 70.753464&# 34;}},{" ElementID2" {"纬度":" 10.029301""经度":" 70.751892& #34;}},{" ElementID3" {"纬度":" 10.029568""经度":" 70.751856 "}}]

包含在"数据"变量:

var response = JSON.parse(data);

我如何完成此结果? 我很清楚,我可以先将其作为数组访问:

for(var element in response)
{

}

但我不知道" ElementID1"将会。它可以是任何字符串,所以我不能做像

这样的事情
element.elementID.latitude 

检索对象纬度。我也希望能够自己获得这张照片。

我认为这是一个简单的问题,但我已经尝试使用谷歌搜索一段时间而没有任何进展。

3 个答案:

答案 0 :(得分:3)

var data = [{"ElementID1":{"latitude":"10.02483","longitude":"70.753464"}},
            {"ElementID2":{"latitude":"10.029301","longitude":"70.751892"}},
            {"ElementID3":{"latitude":"10.029568","longitude":"70.751856"}}];

for(var i = 0; i < data.length; i++) {
    var obj = data[i];    
    for (var key in obj) {
       if (obj.hasOwnProperty(key)) {
          console.log(obj[key].latitude);
       }
    }
}

<强> DEMO

基本上,您需要访问每个数据数组元素,在这种情况下是一个对象,并且由于您不知道每个元素的ElementID*名称,您可以遍历属性该对象在这种情况下寻找所需的对象latitude

答案 1 :(得分:0)

您可以执行以下操作:

response.forEach(function(response){
  for (var element in response){
    var picutureId = element;
    var latitude = value[element].latitude;
    var longitude = value[element].longitude; 
   // at this point you can manipulate the pictureId, latitude, and longitude of each object
  }
})

循环遍历结果数组,遍历每个对象的键/值对并从那里操纵数据。

答案 2 :(得分:0)

如果偶数纬度和经度属性名称未知

for (var index in data) { //Iterate through array
    var obj = data[index];
    for (var prop in obj) { //Iterate through ElementId object
        console.log(prop); //Print ElementID
        var latlongObj = obj[prop];
        for (var key in latlongObj) { //Iterate through latlong object
            console.log(key); //Print lattitude/longitude
            console.log(latlongObj[key]); //Print value
        }
    }
}