JSON und CSV: Daten übertragen, ohne ihre Bedeutung zu verlieren
Eine gelungene Konvertierung ist mehr als eine Datei, die sich öffnen lässt. Eine Artikelkennung muss Kennung, ein Preis Preis und ein fehlender Wert fehlend bleiben. Typ- und Strukturfehler können ohne Fehlermeldung durchgehen.
Flache Zeilen oder verschachtelte Daten?
CSV passt zu Tabellen aus Zeilen und Feldern. JSON kann typisierte Werte, Listen und verschachtelte Objekte darstellen. Enthält ein Datensatz mehrere Adressen oder Produkte, legen Sie vor dem CSV-Export fest, wie diese zu Spalten werden. Es gibt keine einzige richtige Tabellenform für jede Struktur.
Quellen: IETF RFC 8259 — JSON Data Interchange Format · IETF RFC 4180 — Common CSV Format
Formatieren ist nicht Validieren
JSON zu formatieren macht Einrückungen lesbarer, beweist aber keinen richtigen Preis oder ein richtiges Datum. Eine Schemaprüfung kontrolliert deklarierte Typen und Pflichtfelder; über die Bedeutung entscheiden weiterhin die Anwendungsregeln.
Eine JSON-Zeichenkette in Anführungszeichen unterscheidet sich von einer Zahl. CSV-Felder mit Kommas oder Zeilenumbrüchen brauchen passende Anführungszeichen; Anführungszeichen innerhalb eines so begrenzten Felds werden verdoppelt.
Quellen: IETF RFC 8259 — JSON Data Interchange Format · IETF RFC 4180 — Common CSV Format
Prüfungen nach der Konvertierung
Bewahren Sie das Original auf. Vergleichen Sie Datensatzanzahl und Spaltennamen und prüfen Sie einen normalen Datensatz sowie einen mit leeren Werten, Satzzeichen oder mehrsprachigem Text. Öffnen Sie das Ergebnis im tatsächlichen Zielprogramm; der Konverter kann dessen Importentscheidungen nicht garantieren.
- Erhalten Sie Kennungen wie 0017 als Text, wenn die Nullen dazugehören.
- Setzen Sie einen leeren Wert, null und 0 nicht ohne bewusste Entscheidung gleich.
- Nutzen Sie künstliche Beispiele statt Zugangsdaten oder echter Personendatensätze.
- Behandeln Sie fremde CSV-Dateien in Tabellenprogrammen vorsichtig: Manche Zellen können als Formeln statt Text interpretiert werden.
Quellen: OWASP — CSV Injection
Beispiel: ein Komma innerhalb eines Namens
Beispiel-JSON: {"sku":"0017","name":"Notizbuch, blau","price":12.5}. In komma-getrenntem CSV wird der Name in Anführungszeichen gesetzt: 0017,"Notizbuch, blau",12.5.
Prüfen Sie beim Import, ob sku als 0017 statt 17 erhalten bleibt und der Produktname nicht in 2 Spalten zerfällt. Die Existenz einer Ausgabedatei allein beweist keine dieser Eigenschaften.