之前可能已多次询问过,但是当我尝试提醒时,我无法从JSON中获取结果,当我提醒 data.results.vote_sum 时,它表示未定义data.results.url或其他节点。
$(document).ready(function() {
function callJson() {
$('.my-div').hide();
var jqxhr = $.get("url", function(data) {
console.log("success");
alert(data.results.vote_sum);
alert(data.results.title);
$('.my-div').prepend(data);
})
.done(function() { console.log("second success"); })
.fail(function() { console.log("error"); })
.always(function() { console.log("finished"); $('.my-div').show(); });
}
callJson();
});
<div class="my-div">
</div>
JSON 是:
{
"count":1,
"results":[
{
"result_type":"article",
"position":0,
"comments_disabled":false,
"label_names":[
],
"vote_sum":0,
"locale":"en-us",
"section_id":1234,
"url":"http://www.xyz.com",
"id":200820164,
"html_url":"http://www.xyz.com/123",
"draft":false,
"source_locale":"en-us",
"title":"What are these sections and articles doing here?",
"updated_at":"2014-02-07T23:46:17Z",
"promoted":false,
"name":"What are these sections and articles doing here?",
"created_at":"2014-02-07T23:46:17Z",
"translation_ids":[
12345
],
"author_id":123455,
"vote_count":0
}
],
"previous_page":null,
"facets":null,
"next_page":null
}
答案 0 :(得分:1)
结果是一个数组。所以你应该像这样使用
data.results[0].vote_sum
答案 1 :(得分:1)
结果是一个数组。尝试:
alert(data.results[0].vote_sum);
答案 2 :(得分:1)
您正在尝试从结果中获取值,但结果本身就是一个数组。
当您尝试获取data.results.vote_sum
相反,你应该选择data.results[0].vote_sum
,它在结果数组中给出属于该特定“vote_sum”索引的值“0”。
请参阅fiddle link了解演示。
答案 3 :(得分:0)
尝试使用$.getJSON()
代替$.get()
,因为您在此处使用JSON
:
var jqxhr = $.getJSON("url", function(data) {
console.log("success");
alert(data.results[0].vote_sum);
alert(data.results[0].title);
$('.my-div').prepend(data);
})
并将data.results
更改为data.results[0]
,因为results
是一个数组。
答案 4 :(得分:0)
data.results
是一个数组,没有名为vote_sum
的属性,尝试访问未定义的属性应该产生undefined
所以其他人已经注意到你应该索引到数组{{1}您也可能希望在代码中更明确。如果您总是希望返回JSON,我建议您使用getJSON代替data.results[0].vote_sum
get
答案 5 :(得分:0)
$.each(data,funciton(index,item){
$.each(data[index].result,function(index,item){
//now you can use all the objects
alert(item.result_type)
});
});