2016-08-19 68 views
0

我在nodejs中使用csvtojson包。我寫了下面的代碼來轉換我的csv文件,但它不能正確轉換爲jsonjson中的鍵沒有雙括號,因此我無法使用鍵獲取值。顯示nodejs - csvtojson沒有給出正確的json鍵輸出

var Converter = require("csvtojson").Converter; 
var converter = new Converter({}); 

converter.fromFile("./file.csv", function(err,result){ 
    console.log(result); 
}); 

輸出爲如下:

[ { a: 1, b: 2, c: 3 }, { a: 3, b: 4, c: 5 } ] 

因此,它提供了錯誤爲 「Key not found!! c

誰能幫。

csv內容如下:

a,b,c 
1,2,3 
3,4,5 
+0

您可以發佈您的CSV內容嗎? –

+0

@DavidR在文章中添加了csv內容 – Abhinav

+0

從文檔中,我覺得輸出應該是'[{「a」:1,「b」:2,「c」:3},{「a」: 3,「b」:4,「c」:5}]',問題在於它是一個JSON字符串,在檢索密鑰之前需要調用JSON.parse。另一個錯誤可能是你如何訪問'c',但你沒有顯示代碼。 – DrakaSAN

回答

1

從文檔,似乎輸出應該是[{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4, "c": 5}] ,這是一個JSON字符串。

要訪問對象的屬性,您需要使用JSON.parse進行評估。

另一個錯誤可能是您如何訪問c,但是您未顯示該代碼。

0

console.log不給你JSON格式的輸出,它是JavaScript對象的轉儲,格式化是不同的。

您需要逐行處理結果。你的結果是一個數組,每個項目都是一個包含所有字段的行。所以,你可以解決第一個行與c鍵:

result[0]['c'] 

或者你可能要循環到該數組訪問的每一行:

converter.fromFile("./file.csv", function(err,result){ 
    for (var i in result) { 
     var line=result[i]; 
     console.log("line "+i+":" + line.c); 
    } 
});  
+0

我想要一個json響應。我有json實用程序,因此它會很容易有一個通用的實用程序,如果我有csv的json,那麼我可以直接通過密鑰的值。 – Abhinav

+0

你想從JavaScript對象的JSON字符串?然後用 'console.log(JSON.stringify(result));' 事實上,這可以工作: 'JSON.parse(JSON。stringify(result));' – Franck

+0

另外,如果你只是想要一個簡單的csv到json轉換器,你可以使用模塊提供的命令行工具: './node_modules/.bin/csvtojson file.csv> file.json '。 並在第三方應用程序中使用'file.json'。 – Franck