2017-10-17 57 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 
    } 
    }