Datenkonverter · 5 Min. gelesen
JSON bis CSV: Verschachtelte Daten reduzieren, ohne ihre
CSV ist immer noch das Format, das in allem geöffnet wird: Tabellenkalkulationen, BI-Tools, Finanzsystemen, dem Laptop eines Prüfers. Bei der Konvertierung von JSON in CSV geht es hauptsächlich darum, was mit den verschachtelten Teilen geschehen soll, da eine Tabelle eine Zeile pro Datensatz und im Voraus festgelegte Spalten hat, während JSON problemlos beliebig tief verschachtelt werden kann.
Aktualisiert
Das Spaltenproblem
Zwei Regeln machen eine Umwandlung von JSON in CSV vorhersehbar. Erstens sind die Spalten die Vereinigung aller Schlüssel über alle Datensätze hinweg – ein Schlüssel, der nur in einem Objekt vorkommt, erhält dennoch eine Spalte, die an anderer Stelle leer ist. Zweitens muss jede Zeile Werte in derselben Reihenfolge ausgeben. Wenn einer der beiden Fehler auftritt, wird eine Datei erstellt, die problemlos geöffnet werden kann und ab der ersten Zeile, in der ein Schlüssel fehlt, stillschweigend falsch ausgerichtet ist.
Verschachtelte Objekte reduzieren
Die herkömmliche Technik ist die Punktschreibweise: `address`, das `city` und `postcode` enthält, wird zu `address.city` und `address.postcode`. Dadurch bleibt jeder Wert in der Tabelle sichtbar und abfragbar, auf Kosten längerer Header. Tief verschachtelte Strukturen können zu unhandlichen Namen führen. Reduzieren Sie daher eine Ebene, auf der Sie die Daten steuern, und lassen Sie das Tool beim Erkunden vollständig reduzieren.
{"id": 7, "customer": {"name": "Ada", "plan": "pro"}}
→ id,customer.name,customer.plan
7,Ada,pro
Arrays: der Teil, der stark abgeflacht wird
Ein Array von Skalaren kann mit einem Trennzeichen zu einer Zelle zusammengefügt werden, was für Tags in Ordnung und für kurze Listen akzeptabel ist. Ein Array von Objekten – zum Beispiel Bestellposten – gehört nicht in eine einzelne Zelle: Verbinden Sie es, und Sie können die Mengen nicht summieren; Indizieren Sie es in `items.0.sku`, `items.1.sku`, und die Spalten hängen davon ab, wie viele Artikel jede Bestellung zufällig hatte. Wenn Sie diesen Fall erreichen, benötigen die Daten zwei CSV-Dateien, eine pro Tabelle, die durch einen Schlüssel verknüpft sind.
Wenn eine Zelle ein Komma, ein Anführungszeichen oder einen Zeilenumbruch enthält, muss sie in Anführungszeichen gesetzt und die internen Anführungszeichen verdoppelt werden. Die generierte Ausgabe bewältigt dies – handbearbeitete CSV normalerweise nicht, weshalb Importe bei Zeilen mit Adressen zeitweise fehlschlagen.
Die Datei in Excel verhalten
Sofern nicht anders angegeben, übernimmt Excel die Systemkodierung, sodass Zeichen mit Akzent beschädigt werden können. Durch die Ausgabe von UTF-8 mit einer Byte-Reihenfolge-Markierung wird dies vermieden; Ohne sie zeigt dieselbe Datei, die in Numbers oder Sheets perfekt aussieht, Mojibake in Excel an. Lange numerische Bezeichner – Kartennummern, große SKUs – sind ebenfalls eine Angabe wert, sodass Excel sie nicht in wissenschaftliche Notation umwandelt.
Wenn CSV die falsche Ausgabe ist
Wenn der Konsument ein Programm ist, wirft CSV Typinformationen und Verschachtelungen ohne Nutzen weg – JSON Zeilen oder eine Datenbanklast sind besser. CSV ist für Menschen mit Tabellenkalkulationen: Berichte, Exporte, Abgleich. Es bewusst und nicht aus Gewohnheit zu wählen, ist die halbe Arbeit. Der Konverter von YamlBox JSON zu CSV läuft vollständig im Browser, sodass ein Export mit Kundenzeilen nie Ihren Computer verlässt.
JSON bis CSV – häufig gestellte Fragen
Wie werden verschachtelte Objekte bei der Konvertierung von JSON in CSV behandelt?
Sie werden standardmäßig mit Punktnotation abgeflacht – `customer.name` wird zu einer eigenen Spalte. Sie können die Werte stattdessen auch gruppieren, aber durch abgeflachte Spalten ist die Datei in einer Tabelle filterbar und schwenkbar.
Warum sehen Akzentzeichen in Excel nach der Konvertierung falsch aus?
Excel liest die Datei mit der lokalen Systemkodierung, sofern in der Bytereihenfolgemarkierung nichts anderes angegeben ist. Beim Exportieren von UTF-8 mit einer Stückliste bleiben die Namen erhalten; Ohne sie werden dieselben Daten in Google Sheets korrekt und in Excel falsch gerendert.
Kann ich ein Array von Objekten in CSV konvertieren?
Spalten entstehen aus der Vereinigung von Schlüsseln über alle Datensätze hinweg, sodass ein Array aus Objekten unterschiedlicher Form immer noch eine gültige Tabelle mit Leerzeichen erzeugt, wenn ein Schlüssel fehlt. Arrays innerhalb dieser Objekte müssen in eine zweite Datei aufgeteilt werden.
In diesem Beitrag erwähnte Tools
Weitere Artikel zum Lesen
5 Min. gelesen
CSV bis JSON: von einer Tabellenkalkulation zu strukturierten
Konvertieren Sie CSV in JSON im Browser – erklärt Kopfzeilen, Trennzeichen, Anführungszeichenregeln und Typverarbeitung, mit den Tabellenkalkulationsexporten, die Parser kaputt machen.
6 Min. gelesen
Excel bis JSON: Arbeitsmappen in strukturierte Daten
Konvertieren Sie Excel im Browser aus XLSX-Arbeitsmappen in JSON – Überschriften, Datumsreihen, Formeln und mehrere Blätter erklärt, ohne dass etwas hochgeladen wird.
5 Min. gelesen
Markdown Tabellen: Generieren Sie sie, anstatt Rohre zu zählen
Erstellen Sie Markdown-Tabellen mit GitHub-Geschmack aus Zeilen oder Tabellenkalkulationen – Ausrichtung, Escape-Pipes und wann eine Tabelle die falsche Wahl für Ihre README-Datei ist.