[英]Undefined variable error when parsing json
I'm trying to parse the json grabbed from here . 我正在尝试解析从这里抓取的json。 Basically what I do is iterate over the items, sort them, then display them.
基本上,我要做的是遍历所有项目,对它们进行排序,然后显示它们。 But I get an error saying
data.data.children[i] is undefined
. 但是我收到一个错误消息,说
data.data.children[i] is undefined
。
I can't think why it's doing it though? 我不知道为什么要这么做呢?
var json = 'http://www.reddit.com/reddits/mine/.json';
GM_xmlhttpRequest({
method: "GET",
url: json,
onload: reddits
});
function reddits(response){
var txt = response.responseText;
var data;
var suggested = document.getElementById('suggested-reddits');
if(window.JSON && JSON.parse){
data = JSON.parse(txt);
}
else{
data = eval("("+txt+")");
}
suggested.innerHTML += '<span>reddits you\'re subscribed to </span> <ul id="rsub"></ul>';
GM_addStyle('#rsub{width: 500px;}');
var reddits = new Array();
var rsub = document.getElementById('rsub');
for(i = 0; i <= data.data.children.length; i++){
var r = data.data.children[i].data.display_name;
reddits.push(r);
}
sort(reddits);
for(i = 0; i <= reddits.length; i++){
rsub.innerHTML += '<li><a href="#" onclick="set_sr_name(this); return false">' + reddits[i] + '</a></li>';
}
}
for(i = 0; i <= data.data.children.length; i++){
var r = data.data.children[i].data.display_name;
reddits.push(r);
}
Clear problem is in the for statement. 明确的问题在for语句中。 Change the
i <= data.data.children.length
to i < data.data.children.length
. 将
i <= data.data.children.length
更改为i < data.data.children.length
。 Note the inequality change. 注意不平等的变化。
Since arrays in Javascript are 0-indexed, the element at i = data.data.children.length
does not exist. 由于Javascript中的数组的索引为0,因此
i = data.data.children.length
处的元素不存在。
You should probably do the same things for the reddits.length
loop. 您可能应该对
reddits.length
循环执行相同的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.