jquery 中的 JSON 节点,未捕获的 TypeError:无法读取未定义的属性“0”
2014-03-24
13687
如何从下面的 jquery 代码中读取 JSON 节点,目前,我在 Firebug 中收到“Uncaught TypeError: Cannot read property '0' of undefined”,请让我知道我做错了什么。
Jquery
$(document).ready(function() {
$('#search_btn_2').click(function(){
var queryValue = $('#search_string_2').val();
$('.my-div').hide();
$.getJSON( "${kb_endpoint_url}",
{ search_query : queryValue }
)
.done(function( data )
{
console.log("success:"+queryValue+":"+data);
alert(data.docs[0].title);
$('.my-div').html('<a href="'+data.docs[0].type+'">'+data.docs[0].title+'</a>');
})
.done(function() { console.log("second success"); })
.fail(function() { console.log("error"); })
.always(function() { console.log("finished"); $('.my-div').show(); });
});
});
JSON
{
"response":{
"start":0,
"docs":[
{
"summary":"image/img1.jpg",
"id":"17",
"title":"Varun",
"votecount":0,
"_version_":1192256,
"type":"User"
}
],
"numFound":1
},
"responseHeader":{
"status":0,
"QTime":1,
"params":{
"indent":"true",
"q":"varun",
"wt":"json"
}
}
}
3个回答
data.docs
未定义。根据您的 JSON 结构,您正在寻找
data.response.docs
。
Scimonster
2014-03-24
您弄错了,您的层次结构是:
data -> response -> docs
但是,您试图直接访问文档(
数据 -> 文档
),这是错误的。
Ehsan Sajjad
2014-03-24
docs
属性属于
data.response
对象,因此您需要使用
data.response.docs[0]
而不是
data.docs[0]
。
您的对象中没有名为
data.docs
的属性,这就是导致错误的原因。
Arun P Johny
2014-03-24