Nach der Datenstruktur entscheiden
JSON stellt Arrays, Objekte, Zeichenfolgen, Zahlen, Wahrheitswerte und null ausdrücklich dar. Es eignet sich für verschachtelte API-Daten und Programmeinstellungen. CSV beschreibt eine Tabelle: Jeder Datensatz besitzt Felder in derselben Spaltenreihenfolge. Für einfache Zeilen und Tabellenimporte ist das praktisch; eine Zelle verrät aber nicht von selbst, ob 0012 eine Kennung, eine Zahl oder Text ist. YAML wird häufig für von Menschen bearbeitete Konfigurationen gewählt, weil Zuordnungen, Folgen und Einrückungen lesbar sind; die Parserregeln brauchen trotzdem Aufmerksamkeit. JSON Lines enthält pro Zeile genau einen vollständigen JSON-Wert und erleichtert so das Anhängen oder getrennte Verarbeiten von Datensätzen. Entscheidend ist die Struktur, die die empfangende Software erwartet, nicht die vertrauteste Dateiendung.
Ein Beispiel in vier Darstellungen
Betrachten Sie das JSON-Array [{"id":1,"city":"Paris"},{"id":2,"city":"Lima"}]. Ein einfacher CSV-Export enthält die Kopfzeile id,city und danach 1,Paris sowie 2,Lima. In YAML kann eine Folge aus zwei Zuordnungen stehen, jeweils mit id und city. Bei JSON Lines steht in der ersten Zeile {"id":1,"city":"Paris"} und in der zweiten {"id":2,"city":"Lima"}; ein äußeres Array fehlt. Mit den verlinkten Konvertern lassen sich diese Varianten ansehen. Enthält city ein Komma, Anführungszeichen oder einen Zeilenumbruch, muss CSV passend zum Leser maskiert und in Anführungszeichen gesetzt werden. Das kurze Beispiel verdeckt diese Schwierigkeit. Testen Sie realistische Werte, bevor Sie große Datenmengen exportieren.
- JSON: Array typisierter Objekte
- CSV: Kopfzeile und flache Zeilen · YAML: eingerückte Zuordnungen
- JSON Lines: ein JSON-Objekt je Zeile
Typen und Verschachtelung brauchen Regeln
Ein JSON-Objekt kann ein weiteres Objekt oder Array enthalten. Eine gewöhnliche flache CSV-Zeile kann solche Strukturen nur mit einer vereinbarten Abbildung darstellen, etwa getrennten Spalten, einem serialisierten JSON-Zellenwert oder mehreren Tabellen. Ein Konverter muss eine Regel wählen; prüfen Sie seine Ausgabe, statt verlustfreie Übertragung anzunehmen. Zahlen und Wahrheitswerte können in CSV zu Zelltext werden und beim Einlesen eine ausdrückliche Typumwandlung brauchen. Eine führende Null in einer Kontokennung ist wichtig, auch wenn ein Tabellenprogramm sie als Zahl deuten möchte. YAML kann strukturierte Daten ausdrücken, doch unquotierte Werte und Einrückungen sollten mit dem Zielparser geprüft werden. In JSON Lines bleiben JSON-Typen je Datensatz erhalten; jede physische Zeile muss ein gültiger JSON-Wert sein.
Mit repräsentativen Daten zurückkonvertieren
Legen Sie vor der Umwandlung einer ganzen Datei eine Probe mit normaler Zeile, leerem Feld, Anführungszeichen, Komma, Nicht-ASCII-Zeichen und bei Bedarf verschachteltem Wert an. Konvertieren Sie die Probe und wandeln Sie sie zurück, sofern ein Gegenwerkzeug vorhanden ist. Vergleichen Sie Struktur und Datentypen, nicht nur sichtbaren Text. Prüfen Sie Spaltennamen, Datensatzanzahl, Reihenfolge und den Unterschied zwischen null und leerer Zeichenfolge. Bei JSON Lines müssen Zeilenumbrüche die Datensätze trennen; ein über mehrere Zeilen formatiertes Objekt darf nicht als mehrere Datensätze gelten. Der eingebettete JSON-zu-CSV-Konverter startet mit zwei einfachen Einträgen. Ändern Sie einen Wert und prüfen Sie die Ausgabe; über die weiteren Links testen Sie YAML und zeilenbasierte Formate.
Import und Sicherheit am Ziel ausrichten
Für ein Tabellenblatt mit gleichförmigen, flachen Datensätzen ist CSV oft geeignet; halten Sie Trennzeichen, Kodierung und erwartete Spaltentypen fest. Stammen Werte aus nicht vertrauenswürdigen Quellen, kann ein Tabellenprogramm Zellen mit bestimmten Anfangszeichen als Formeln ausführen. Ein CSV-Export für Tabellen braucht deshalb eine eigene Sicherheitsregel. YAML kann von Menschen gepflegte Konfigurationen lesbarer machen, sollte aber im tatsächlich eingesetzten Parser validiert werden. Für APIs und strukturierte Dokumente zeigt JSON Typen und Verschachtelung meist deutlicher. JSON Lines kann bei Protokollen und Datenpipelines helfen, die Ereignisse nacheinander verarbeiten. Eine erfolgreiche Syntaxumwandlung ist nur der erste Schritt; ausschlaggebend ist die Deutung durch das Zielprogramm.