繁体   English   中英

用JavaScript解析JSON响应

[英]Parse JSON response in javascript

我正在使用AngularJS构建应用,并且尝试在Google地图上绘制位置。 我有一个如下所示的JSON响应:

 locations: [{ 
    id: 123
    latlng:  { 
        lat: 56.3
        lon: -2.1
        } 
    name: TestName
    }]

我正在使用的指令( angular-google-maps )要求标记必须采用以下格式。 我想做的是创建一个仅包含lat和lng值的新数组,如下所示。 我还需要将经纬度重命名为经度和纬度:

markers: [ {
        latitude: 45,
        longitude: -74
    },{
        latitude: 46,
        longitude: -75  
    }]

我是编程的新手,尤其是在javascript中。 我试图查看是否可以在JSON响应中访问latlng对象,但未定义。 看起来像这样:

for (var latlng in $scope.locations) {
        if ($scope.locations.hasOwnProperty(latlng))
        {
            var latitude = $scope.locations[latlng].lat;
        }
        console.log(latitude);
    }

提前致谢!

$scope.locations[latlng]将您带到包含latlng键的对象,而不是该键引用的对象。 由于迭代变量是数组的索引,因此使用反映该名称的名称会减少混乱,例如, i代替latlng

for (var i in $scope.locations) {
    …
    var latitude = $scope.locations[i].latlng.lat;
    …
}

在大多数JavaScript实现中,您还有另一个选择:

$scope.locations.forEach(function(location) {
    …
    var latitude = location.latlng.lat;
    …
});

(还请注意@rtcherry的评论。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM