2017-10-17 33 views
0

內得到座標我如何才能從這JSON響應的X和Y座標:JavaScript的:如何從JSON數組字典

{ 
    "spatialReference": { 
     "wkid": 4326, 
     "latestWkid": 4326 
    }, 
    "candidates": [ 
    { 
     "address": "Berlin", 
     "location": { 
      "x": 13.376910000000066, 
      "y": 52.516040000000032 
      }, 
    } 
} 

我應該使用JSON.parse?不知道如何處理位於數組內的字典內的數組內部的數組。

+1

,你可以嘗試:數組[我] .candidates [J] .location。 x和y相同。 [i]是你的數組索引,j是候選人的索引。你需要嵌套循環。 – dpetrini

+0

它取決於你的數據結構。你可以更清楚地描述它 – Andrea

回答

0

您可能想要查看關於indexed collections的文檔。

在任何情況下,你可以按如下方式訪問座標:

var response = { 
    "spatialReference": { 
    "wkid": 4326, 
    "latestWkid": 4326 
    }, 
    "candidates": [{ 
    "address": "Berlin", 
    "location": { 
     "x": 13.376910000000066, 
     "y": 52.516040000000032 
    } 
    }] 
}; 

var coordinates = response["candidates"][0]["location"]; 
1

假設你的變量名是data

如果你要打印的第一指標

console.log(data.candidates[0].location.x) 
console.log(data.candidates[0].location.y) 

如果您要訪問它的所有

for (var i = 0; i< data.candidates.length; i++){ 
    console.log(data.candidates[i].location.x) 
    console.log(data.candidates[i].location.y) 
} 

如果您data是一個數組

然後

for (var j = 0; j < data.length; j++) { 
    for (var i = 0; i < data[j].candidates.length; i++) { 
    console.log(data[j].candidates[i].location.x) 
    console.log(data[j].candidates[i].location.y) 
    } 
} 
0

當您使用JSON.parse時,您可以將此字符串轉換爲JS對象。

那麼它就是一個物體在哪個物體裏面的問題。

比方說,你在讚揚你的字符串中的變量名稱jobs

var jobs = JSON.parse(myDataObject) 

以下行會告訴你如何現在訪問該對象的每個部分。

console.log(jobs.spatialReference.wkid) //4326 
console.log(jobs.candidates[0]location.x) //13.376910000000066 

請注意,如果你所說的

console.log(jobs.candidates[0]) 

這將返回整個對象

{ 
    "address": "Berlin", 
    "location": { 
     "x": 13.376910000000066, 
     "y": 52.516040000000032 
    } 
    }