2015-09-28 75 views
0

我们将数据库导出到csv,并使用csv文件将其还原。读取csv文件时,如Node.js-将字符串数组转换为对象

0,"SIMry",0,"ROOT",false,true,null 

转换为字符串数组。

["0","SIMry","0","ROOT","false","true","null"] 

Int, NULL, Boolean所有这些都没有意义。我想输出为

[0,"SIMry",0,"ROOT",false,true,null] 

我正在使用fast-csv节点库。

+0

所以你说你有这个最早的访问时,它的*已经*成为该字符串数组'[“0 “,”SIMry“,”0“,”ROOT“,”false“,”true“,”null“]格式?如果是这样,那就太晚了。你需要早点参与*。 (对于CSV库,这也看起来像*真*奇怪的行为。) –

+0

@ T.J.Crowder该库实际上提供了一个字符串流,并在对象模式下调用字符串流上的JSON.parse。我不介意逐行阅读文件。 –

回答

-1

使用JSON.parse。例如下面的代码

var a= ["0","SIMry",0,"ROOT",false,true,null]; 
var a_string = JSON.stringify(a); // This is what your library does 
var a_json_var = JSON.parse(a_string); // This is how you compensate 

console.log (JSON.stringify(a_json_var)); 
if (a_json_var[5]){console.log ("boolean");} 

将打印

["0","SIMry",0,"ROOT",false,true,null] 
boolean 
+0

OP的引用文字“[”0“,”SIMry“,”0“,”ROOT“,”false“,”true“,”null“]',将**不会**魔法变成数字,布尔值,并用上面的'null'。 –

+0

它不会。这是一个数字,它仍然是一个数字。字符串相同。在downvoting之前应该仔细看一下 –

+0

再说一遍:OP列出的文本不会神奇地被'JSON.parse'解释。尝试解析他们*实际上说他们有*。当他们有这种情况时,已经太迟了,信息已经丢失。 (我仔细看了看答案,你不知道是谁低估了它*假设*你知道基于谁与你的关系往往是错的而不是正确的,对此抱怨总是*错,相反,考虑*为什么*并注意反馈。) –