2016-08-19 1 views
0

Ich verwende csvtojson Paket in nodejs. Ich habe unten Code geschrieben, um meine csv Datei zu konvertieren, aber es wird nicht korrekt in json konvertiert. Die Schlüssel in json haben keine doppelten Klammern, daher kann ich mit dem Schlüssel keinen Wert erhalten.nodejs - csvtojson geben keine richtigen json Schlüssel in der Ausgabe

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

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

Ausgang gezeigt ist wie folgt:

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

Daher gibt es Fehler als "Key not found!! c"

kann jemand helfen.

Der csv Inhalt ist wie folgt:

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

Können Sie Ihre CSV-Inhalte veröffentlichen? –

+0

@DavidR Hinzugefügt csv Inhalt in der Post – Abhinav

+0

Aus der Dokumentation hatte ich den Eindruck, dass die Ausgabe sein sollte "[{" a ": 1," b ": 2," c ": 3}, {" a ": 3, "b": 4, "c": 5}] ', und das Problem wäre, dass es sich um eine JSON-Zeichenfolge handelt, und Sie müssen' JSON.parse' darauf aufrufen, bevor Sie Schlüssel abrufen können. Ein weiterer Fehler könnte sein, wie Sie auf "c" zugreifen, aber Sie haben den Code dafür nicht angezeigt. – DrakaSAN

Antwort

1

Aus der Dokumentation, wie es scheint der Ausgang [{"a": 1, "b": 2, "c": 3}, {"a": 3, "b": 4, "c": 5}] sein sollte Dies ist eine JSON-Zeichenfolge.

Um auf die Eigenschaft der Objekte zuzugreifen, müssen Sie sie mit JSON.parse auswerten.

Ein weiterer Fehler könnte darin liegen, wie Sie auf c zugreifen, aber Sie haben den Code dafür nicht angezeigt.

0

console.log nicht geben Sie json formatierte Ausgabe, es ist das Abbild des Javascript-Objekt ist, Formatierung unterscheidet.

Sie müssen die Ergebnisse zeilenweise ansprechen. Ihr Ergebnis ist ein Array, wobei jedes Element eine Zeile mit allen Feldern ist. So können Sie die erste Zeile des c Schlüssel Adresse mit:

result[0]['c'] 

Oder möchten Sie wahrscheinlich eine Schleife in diesem Array jede Zeile zuzugreifen:

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

Ich möchte eine JSON-Antwort haben. Ich habe JSON-Dienstprogramm an Ort und Stelle, daher wird es einfach sein, ein generisches Dienstprogramm zu haben, so dass, wenn ich JSON von CSV habe, ich direkt Werte des Schlüssels übergeben kann. – Abhinav

+0

Sie möchten die JSON-Zeichenfolge aus dem Javascript-Objekt? Dann verwenden Sie 'console.log (JSON.stringify (Ergebnis));' In der Tat würde dies funktionieren: 'JSON.parse (JSON.stringify (result)); ' – Franck

+0

Wenn Sie nur einen einfachen csv-json-Konverter möchten, können Sie das Befehlszeilen-Tool verwenden, das im Lieferumfang des Moduls enthalten ist: ' ./node_modules/.bin/csvtojson file.csv> file.json '. Und verwenden Sie 'file.json' in einer Anwendung von Drittanbietern. – Franck

Verwandte Themen