簡體   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