我尝试使用JSON strigify,但它仅返回我:
{"name":"nipahVirus","children":{}}
是因为我的格式数据类型转换错误?或我做过的任何地方。如果有人可以帮助我,将不胜感激。 我正在将csv转换为JSON。
这是我的代码。
function findSpecies(name){
var objspecies = {};
Papa.parse("nipahdata.csv", {
download: true,
complete: function(results) {
for(i = 0;i < results.data.length; i ++){
var species = {};
if(name == results.data[i][0]){
species["name"] = results.data[i][1];
species["niv_status"] = results.data[i][2];
objspecies[results.data[i][0]] = species;
}
}
}
});
return objspecies;
}
var nipahVirus_obj = {};
var genus = {};
Papa.parse("nipahdata.csv", {
download: true,
complete: function(results) {
var currgenus = "";
for(i = 0;i < results.data.length; i ++){
if(results.data[i][0] == "")
continue;
if(currgenus != results.data[i][0]){
var objgenus = {};
currgenus = results.data[i][0];
objgenus["name"] = results.data[i][0];
objgenus["children"]=findSpecies(results.data[i][0]);
genus[results.data[i][0]] = objgenus;
}
}
}
});
nipahVirus_obj["name"] = "nipahVirus";
nipahVirus_obj["children"] = genus;
var nipahVirus_JSON = JSON.stringify(nipahVirus_obj);
console.log(nipahVirus_JSON);
csv就是这样,其中包含三列:
Genus,Species Name,NiV status
Craseonycteris,Craseonycteris_thonglongyai,0
Emballonura,Emballonura_alecto,0
Emballonura,Emballonura_dianae,0
Emballonura,Emballonura_furax,0
Emballonura,Emballonura_raffrayana,0
Emballonura,Emballonura_serii,0
Emballonura,Emballonura_monticola,0
Emballonura,Emballonura_beccarii,0
Emballonura,Emballonura_semicaudata,0
Mosia,Mosia_nigrescens,0
Saccolaimus,Saccolaimus_flaviventris,0
Saccolaimus,Saccolaimus_saccolaimus,0
答案 0 :(得分:0)
函数findSpecies中有一个异步进度,您实际返回的objspecs是您定义的{},而不是完整返回的数据。您可以定义一个回调函数,并完整地调用它。代码可能像这样,因为有两个帖子,我无法调试它,所以您应该自己在环境中运行它并进行检查。
function findSpecies(name){
var objspecies = {};
Papa.parse("nipahdata.csv", {
download: true,
complete: function(results) {
for(i = 0;i < results.data.length; i ++){
var species = {};
if(name == results.data[i][0]){
species["name"] = results.data[i][1];
species["niv_status"] = results.data[i][2];
objspecies[results.data[i][0]] = species;
}
}
callback(objspecies)
}
});
}
var objgenus = {};
var nipahVirus_obj = {};
var genus = {};
Papa.parse("nipahdata.csv", {
download: true,
complete: function(results) {
var currgenus = "";
for(i = 0;i < results.data.length; i ++){
if(results.data[i][0] == "")
continue;
if(currgenus != results.data[i][0]){
currgenus = results.data[i][0];
objgenus["name"] = results.data[i][0];
findSpecies(results.data[i][0]);
}
}
}
});
function callback(data){
objgenus["children"]=data
genus[results.data[i][0]] = objgenus;
nipahVirus_obj["name"] = "nipahVirus";
nipahVirus_obj["children"] = genus;
var nipahVirus_JSON = JSON.stringify(nipahVirus_obj);
console.log(nipahVirus_JSON);
}