0

我在下面有以下 JSON 文件:

{"myArea":[{
 "name": "ny 01",
 "data": [63]
}]}

我使用下面的代码来检索数据:

 $(document).ready(function () {   
  $.getJSON('area.json',function(area){
    console.log(area[0][0]);
  });   
});

但是没有检索到数据。控制台日志显示 [object object] or undefined name 尝试console.log(area[0])或时console.log(area[0].name)。访问数据的正确方法是什么?

4

3 回答 3

2

您的根 JSON 对象是一个“对象”!您可以使用area['name']or area.name(其中name是有效键)访问属性。

在您的情况下,您有一个名为myArea:的键area['myArea']

此表达式的结果将是以下数组(此处以 JSON 表示):

[{
 "name": "ny 01",
 "data": [63]
}]

myArea现在,您可以使用 . 从数组中获取第一个元素area['myAray'][0]。这将导致返回以下对象:

{
 "name": "ny 01",
 "data": [63]
}

现在访问数据相当容易(但要注意data,它是一个数组!)

$(document).ready(function () {   
  $.getJSON('area.json',function(area){
    console.log(area['myArea'][0]['name']);    "ny 01"
    console.log(area['myArea'][0]['data'][0]); 63
  });   
});
于 2013-09-09T19:08:43.680 回答
0

在您发布的代码中,area有一个名为myArea.

console.log(area.myArea)会给你:

[{"name": "ny 01", "data": [63]}]

console.log(area.myArea[0]会给你:

{"name": "ny 01", "data": [63]}

要访问data第一个元素:

console.log(area.myArea[0].data[0]

会给你63

于 2013-09-09T19:12:59.173 回答
0

您将“区域”视为数组(通过尝试访问索引为零的项目),但它是一个对象。而是尝试访问对象的“myArea”属性。

var area = {"myArea":[{
  "name": "ny 01",
  "data": [63]
}]};

area[0]; // => undefined, because there is no attribute with key "0".
area['myArea']; // => [{name:"ny 01",...}], same as "area.myArea".
于 2013-09-09T19:18:38.487 回答