我在下面有以下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)
时,控制台日志会显示[对象对象]或未定义的名称。访问数据的正确方法是什么?
答案 0 :(得分:2)
您的根JSON对象是'对象'!您可以使用area['name']
或area.name
(其中名称是有效密钥)来访问媒体资源。
在您的情况下,您有一个名为myArea
的密钥:area['myArea']
。
此表达式的结果将是以下数组(此处以JSON表示):
[{
"name": "ny 01",
"data": [63]
}]
现在,您可以使用myArea
从area['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".