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

Javascript get the name of the object after parsing from JSON

本文关键字:对象 JSON Javascript      更新时间:2023-09-26

考虑以下JSON字符串:

[{"ElementID1":{"纬度":"10.02483","经度":"70.753464"}},{"elemID2":{

包含在"数据"变量中:

var response = JSON.parse(data);

我该如何处理这个结果?对我来说很清楚,我可以首先作为数组访问这个:

for(var element in response)
{
}

但我不知道"ElementID1"会是什么。它可以是任何字符串,所以我不能只做之类的事情

element.elementID.latitude 

检索对象纬度。我也希望能够得到图片id本身。

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

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

演示

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

您可以执行以下操作:

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

循环遍历结果数组,循环遍历每个对象的key/val对,并从中操作数据。

如果纬度和经度属性名称都是未知的

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
        }
    }
}