Javascript从JSON解析后获取对象的名称
考虑以下JSON字符串: [{“ElementID1”:{“纬度”:“10.02483”,“经度”:“70.753464”},{“ElementID2”:{“纬度”:“10.029301”,“经度”:“70.751892”},{“ElementID3”:{“纬度”:“10.029568”,“经度”:“70.751856”}] 包含在“数据”变量中: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
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或..在
中。在任何对象中使用此循环,它将循环