JavaScript:如何从字典

时间:2017-10-17 09:53:15

标签: javascript arrays json dictionary

如何从此JSON响应中获取x和y坐标:

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

我应该使用JSON.parse吗?不知道如何处理数组内部数组内的数组。

3 个答案:

答案 0 :(得分: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)
  }
}

答案 1 :(得分: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"];

答案 2 :(得分: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
    }
  }