YamlBox

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

Durchsuchen Sie die vollständige Liste der 19-Tools

Weitere Artikel zum Lesen

Alle 19 Beiträge →