[英]Reading, parsing, iterating through JSON with Node.js
I'm trying to parse Reddit's RSS feed to grab the titles of front page articles, and having some trouble. 我正在尝试解析Reddit的RSS feed,以获取头版文章的标题,并且遇到了一些麻烦。 Source code below: 源代码如下:
//var util = require('util');
//var cheerio = require('cheerio');
var fs = require('fs');
var request = require('request');
var parseString = require('xml2js').parseString;
url = 'http://www.reddit.com/.xml';
request(url, function(error, response, xml){
parseString(xml, function(err, result) {
result = result.rss.channel[0];
console.log(result.item[0]['title']); // works fine, gets first title
for(var key in result){
console.log(result[key]['title']); // returns a bunch of 'undefined'
}
//console.log(util.inspect(result,false,null));
fs.writeFile("index.html", result, function(err){
if(err) { return console.log(err); }
return console.log("File saved.");
});
});
});
You get undefined
because you should be iterating over result.item
instead of just result
. 您undefined
因为您应该遍历result.item
而不是result
。 For example: 例如:
for(var key in result.item) {
console.log(result.item[key]['title']);
}
Additionally, you should just use a regular for
-loop instead of using for..in
, since it seems like result.item
is just a plain array. 此外,您应该只使用常规的for
-loop而不是for..in
,因为result.item
似乎只是一个简单的数组。 For example: 例如:
var items = result.item;
for (var i = 0; i < items.length; ++i) {
console.log(items[i].title);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.