考虑以下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
检索对象纬度。我也希望能够自己获得这张照片。
我认为这是一个简单的问题,但我已经尝试使用谷歌搜索一段时间而没有任何进展。
答案 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
}
}
}