Javascript 为什么我的JSON文件在一个键中显示所有值?
我已经废弃了一个使用Node.js环境的网站。我以JSON格式解析了数据,并将JSON数据保存在一个名为output.js的文件中 但是,不是为不同的值创建具有不同数组的不同键,而是将整个数据值存储在单个键中。我使用了每个函数并形成了一个循环,将它们存储在不同的数组中,但这似乎不起作用 可能的故障是什么 代码如下:Javascript 为什么我的JSON文件在一个键中显示所有值?,javascript,json,node.js,Javascript,Json,Node.js,我已经废弃了一个使用Node.js环境的网站。我以JSON格式解析了数据,并将JSON数据保存在一个名为output.js的文件中 但是,不是为不同的值创建具有不同数组的不同键,而是将整个数据值存储在单个键中。我使用了每个函数并形成了一个循环,将它们存储在不同的数组中,但这似乎不起作用 可能的故障是什么 代码如下: var cheerio = require('cheerio'); var request = require('request'); var fs = require('
var cheerio = require('cheerio');
var request = require('request');
var fs = require('fs');
var allJSONdata = [];
request ('http://www.bseindia.com/corporates/ann.aspx',
function (error, response, html) {
if(!error && response.statusCode == 200){
var $ = cheerio.load(html);
var allRecords = $('div.content');
allRecords.each(function(index, element){
var title = $(element).find('td.TTHeadergrey').text();
var tempData = {
Header:title
}
allJSONdata.push(tempData);
});
}
fs.writeFile('output.json', JSON.stringify(allJSONdata), function(err){
console.log('successfully saved');
})
});
我的output.json数据如下:
[{"Header":" /*all heads in this single key*/ "}]
您没有使用正确的选择器,因此。。。更改此项:
var allRecords = $('div.content');
allRecords.each(function(index, element){
var title = $(element).find('td.TTHeadergrey').text();
var tempData = {
Header:title
}
allJSONdata.push(tempData);
});
为此:
var allRecords = $('.content .TTHeadergrey');
allRecords.each(function(index, element){
if( (index % 5)===0 || (index % 5)===1){
var title = $(element).text();
var tempData = {
Header:title
};
allJSONdata.push(tempData);
}
});
哇!成功了。为什么选择器在我的代码中不正确?$'div.content'获取“holder”所有其他标题的div,因此当您调用find'td.TTHeadergrey'时,它将返回所有标题,而不是只返回您想要的一个标题。还有一个问题。我怎样才能从源网站获取每一个第一个和第五个..TTHeadergrey。第一、第五、第六、第十、第十一、第十五。。。等等。然后将它们存储在不同的键中,如title和body。我尝试了您检查上述代码的方法,但没有成功。