我有像
这样的代码$('#letter-b').click(function(e) {
e.preventDefault();
$.getJSON('b.js', function(data,status){
$('#dictionary').html(data.term+" - "+status);
}
);
});
b.js
就像
[
{
"term": "BACCHUS",
"part": "n.",
"definition": "A convenient deity invented by the...",
"quote": [
"Is public worship, then, a sin,",
"That for devotions paid to Bacchus",
"The lictors dare to run us in,",
"And resolutely thump and whack us?"
],
"author": "Jorace"
}
]
但是当我按下按钮时,我得到了undefined - success
。
为什么我得到undefined
?我如何改变我的语法以获得价值?我记得,当我有一个键值对时,我必须使用传入的数据(data
),然后使用键的名称(term
)来获取值。我还尝试了data[term]
和data["term"]
,但仍然没有。我错过了什么?
答案 0 :(得分:4)
您回来的JSON实际上是一个包含对象的数组。您需要引用数组的第一个索引来访问实际数据:
$.getJSON( 'b.js', function( data, status ){
var obj = data[ 0 ];
$( '#dictionary' ).html( obj.term + " - " + status );
}
);
以下是对响应中包含的结构的一个小解释:
[ // data
{ // data[ 0 ]
"term": "BACCHUS", // data[ 0 ].term
...
}
]