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

Javascript从JSON解析后获取对象的名称,javascript,json,Javascript,Json,考虑以下JSON字符串: [{“ElementID1”:{“纬度”:“10.02483”,“经度”:“70.753464”},{“ElementID2”:{“纬度”:“10.029301”,“经度”:“70.751892”},{“ElementID3”:{“纬度”:“10.029568”,“经度”:“70.751856”}] 包含在“数据”变量中: var response = JSON.parse(data); 我该如何处理这个结果? 我很清楚,我可以首先以数组的形式访问它: for(var

考虑以下JSON字符串:

[{“ElementID1”:{“纬度”:“10.02483”,“经度”:“70.753464”},{“ElementID2”:{“纬度”:“10.029301”,“经度”:“70.751892”},{“ElementID3”:{“纬度”:“10.029568”,“经度”:“70.751856”}]

包含在“数据”变量中:

var response = JSON.parse(data);
我该如何处理这个结果? 我很清楚,我可以首先以数组的形式访问它:

for(var element in response)
{

}
但我不知道“ElementID1”是什么。它可以是任何字符串,所以我不能像这样做

element.elementID.latitude 
检索对象纬度。我也希望能够获得照片id本身

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

var data=[{“ElementID1”:{“纬度”:“10.02483”,“经度”:“70.753464”},
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);
       }
    }
}
{“ElementID2”:{“纬度”:“10.029301”,“经度”:“70.751892”}, {“ElementID3”:{“纬度”:“10.029568”,“经度”:“70.751856”}); 对于(变量i=0;i

基本上,您需要访问每个数据数组元素,在本例中,它是一个对象,并且由于您不知道每个元素的
ElementID*
名称,因此可以在该对象的属性中循环查找所需的属性,在本例中,
latitude
var data=[{“ElementID1”:{“latitude”:“10.02483”,“经度”:“70.753464”},
{“ElementID2”:{“纬度”:“10.029301”,“经度”:“70.751892”},
{“ElementID3”:{“纬度”:“10.029568”,“经度”:“70.751856”});
对于(变量i=0;i

基本上,您需要访问每个数据数组元素,在本例中,它是一个对象,并且由于您不知道每个元素的
ElementID*
名称,因此可以在该对象的属性中循环查找所需的属性,在本例中,
latitude
var data=[{“ElementID1”:{“latitude”:“10.02483”,“经度”:“70.753464”},
{“ElementID2”:{“纬度”:“10.029301”,“经度”:“70.751892”},
{“ElementID3”:{“纬度”:“10.029568”,“经度”:“70.751856”});
对于(变量i=0;i

基本上,您需要访问每个数据数组元素,在本例中,它是一个对象,并且由于您不知道每个元素的
ElementID*
名称,因此可以在该对象的属性中循环查找所需的属性,在本例中,
latitude
var data=[{“ElementID1”:{“latitude”:“10.02483”,“经度”:“70.753464”},
{“ElementID2”:{“纬度”:“10.029301”,“经度”:“70.751892”},
{“ElementID3”:{“纬度”:“10.029568”,“经度”:“70.751856”});
对于(变量i=0;i


基本上,您需要访问每个数据数组元素,在本例中,它是一个对象,并且由于您不知道每个元素的
ElementID*
名称,因此可以循环查看此对象的属性以查找所需的属性,在本例中,
纬度

您可以执行以下操作:

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对,并从中操作数据

您可以执行以下操作:

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对,并从中操作数据

您可以执行以下操作:

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对,并从中操作数据

您可以执行以下操作:

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

即使纬度和经度属性名称未知

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

即使纬度和经度属性名称未知

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

即使纬度和经度属性名称未知

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

您不应该使用
for..在
中要迭代数组,请使用
for
。我不确定我是否完全理解你的要求,但答案可能是,
for..in
。在任何对象中使用此循环,它将在其键上循环,就像在数组键上循环一样。换句话说:这就是你想要的吗(var i=0,n=response.length;iI必须同意@acdcjunior:
for…in
JS中的循环实际上并没有给你元素,只是给你索引。你不应该使用
for..in
来迭代数组,使用香草
for
。我不确定我完全理解你的要求,但答案可能是,
f或..在
中。在任何对象中使用此循环,它将在其键上循环,就像在数组键上循环一样。换句话说:这是您想要的吗?:
用于(var i=0,n=response.length;iI必须同意@acdcjunior:
for…in
JS中的循环实际上并没有给你元素,只是给你索引。你不应该使用
for..in
来迭代数组,使用香草
for
。我不确定我完全理解你的要求,但答案可能是,
f或..在
中。在任何对象中使用此循环,它将循环