JSON Stringify 仅返回父级
Posted
技术标签:
【中文标题】JSON Stringify 仅返回父级【英文标题】:JSON Strigify returns only parent 【发布时间】:2020-02-11 15:14:44 【问题描述】:我尝试使用 JSON srigify,但它只返回给我:
"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
【问题讨论】:
您尝试解析的 csv 格式是什么样的? @Geshode 我已经添加了 csv 格式 【参考方案1】:findSpecies函数有一个异步进度,你返回的objspecies实际上是你定义的,而不是完整返回的数据。你可以定义一个回调函数,并完整调用它。代码可能像这样,因为有两个帖子,我无法调试它,你应该自己在你的环境中运行它,并检查它。
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);
【讨论】:
以上是关于JSON Stringify 仅返回父级的主要内容,如果未能解决你的问题,请参考以下文章
当我 JSON.stringify(object) 我得到一个疯狂的字符串作为值
为啥 TypeError 上的 JSON.stringify 返回一个空对象 [重复]
JSON.stringify(2) == "2" 可能返回 false 是不是正确?