无法读取JSON文件

时间:2013-09-09 19:04:12

标签: javascript

我在下面有以下JSON文件:

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

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

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

但是没有检索到数据。尝试console.log(area[0])console.log(area[0].name)时,控制台日志会显示[对象对象]或未定义的名称。访问数据的正确方法是什么?

3 个答案:

答案 0 :(得分:2)

您的根JSON对象是'对象'!您可以使用area['name']area.name(其中名称是有效密钥)来访问媒体资源。

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

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

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

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

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

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

$(document).ready(function () {   
  $.getJSON('area.json',function(area){
    console.log(area['myArea'][0]['name']);    "ny 01"
    console.log(area['myArea'][0]['data'][0]); 63
  });   
});

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

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