mygems

CSV in JSON umwandeln

Jede Zeile ein Objekt, jede Kopfzeile ein Schlüssel.

  • Array, JSON Lines oder Arrays
  • Zahlen und Booleans erkannt
  • IDs bleiben Strings
  • Nichts wird hochgeladen

1.Datei öffnen

CSV oder TSV. Hierher ziehen oder eine Datei auswählen.

Warum es das gibt

CSV in JSON wirkt wie die einfache Richtung, und die üblichen Konverter machen es sich einfach, indem sie die Typen falsch setzen: Entweder wird alles zum String, oder alles, was numerisch aussieht, wird zur Zahl, auch die Postleitzahl mit der führenden Null und die 18-stellige ID, die JavaScript nicht exakt darstellen kann. Dieses Tool entscheidet jede Spalte anhand aller ihrer Werte und lässt die in Ruhe, die nur wie Zahlen aussehen.

Was es kann

  • Schreibt ein Array aus Objekten mit der Kopfzeile als Schlüssel, JSON Lines mit einem Objekt pro Zeile oder ein Array aus Arrays mit der Kopfzeile zuerst.
  • Erkennt Spalten, die ausschließlich aus Zahlen oder true/false bestehen, und schreibt sie ohne Anführungszeichen.
  • Behält Spalten mit führenden Nullen oder mehr als 15 Ziffern als Strings, weil eine JSON-Zahl sie verändern würde.
  • Macht aus leeren Zellen null statt eines leeren Strings, oder behält auf Wunsch alles als Strings.
  • Rückt zum Lesen ein oder schreibt die kleinstmögliche Datei.

Welche Form du wählen solltest

Ein Array aus Objekten erwarten die meisten APIs und JavaScript-Programme. JSON Lines eignet sich für große Dateien und Datentools, die einen Datensatz nach dem anderen streamen, etwa BigQuery, Elasticsearch und jq. Ein Array aus Arrays ist am kompaktesten und hält die Spaltenreihenfolge ausdrücklich fest.

Fragen

Warum ist meine ID-Spalte noch ein String?
Weil die Umwandlung in eine Zahl sie verändern würde. Eine führende Null verliert jeder JSON-Parser, und ganze Zahlen mit mehr als 15 oder 16 Stellen verlieren in JavaScript an Genauigkeit. Ist jeder Wert einer Spalte eine schlichte Zahl ohne eines der beiden Probleme, wird sie als Zahl geschrieben.
Was passiert mit leeren Zellen?
Bei aktivierter Typerkennung werden sie zu null, denn in einer CSV lässt sich ein leerer String nicht von einem fehlenden Wert unterscheiden. Ohne Erkennung ist jeder Wert ein String, auch die leeren.
Kommt es mit verschachteltem JSON zurecht?
CSV ist flach, also ist auch das erzeugte JSON flach: eine Ebene von Schlüsseln pro Datensatz. In die andere Richtung, von verschachteltem JSON zu CSV, arbeitet das Tool „JSON in CSV umwandeln“.