2016-08-19 8 views
0

私はパッケージをnodejsに使用しています。私はcsvファイルを変換するコードを以下に書いたが、正しくjsonに変換されていない。 jsonのキーには二重括弧がないため、キーを使用して値を取得することはできません。示さ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オブジェクトのダンプです。

結果を1行ずつ指定する必要があります。結果は配列で、各項目はすべてのフィールドを含む行です。だから、あなたが最初の行の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ユーティリティを持っているので、私はcsvからjsonを持っている場合、私は直接渡されたキーの値を持つことができるような一般的なユーティリティを持つことは簡単になります。 – Abhinav

+0

javascriptオブジェクトのjson文字列を使用しますか?次に、 'console.log(JSON.stringify(result)); ' を使用してください。実際にはこれは動作します: ' JSON.parse(JSON。文字列化(結果)); ' – Franck

+0

また、単純なcsv to jsonコンバータが必要な場合は、モジュールで提供されているコマンドラインツールを使用できます。 ' ./node_modules/.bin/csvtojson file.csv> file.json '。 第三者のアプリケーションで 'file.json'を使用してください。 – Franck

関連する問題