2015-09-28 72 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'解釋。嘗試解析他們*實際上說他們有*。當他們有這種情況時,已經太遲了,信息已經丟失。 (我仔細看了看答案,你不知道是誰低估了它*假設*你知道基於誰與你的關係往往是錯的而不是正確的,對此抱怨總是*錯,相反,考慮*爲什麼*並注意反饋。) –