Formatiertes JSON ist nicht automatisch inhaltlich richtig

Einrückung macht Einstellungen und Antworten eines Dienstes leichter prüfbar. Sie erkennt nicht, ob ein Preis stimmt, ein Feld erforderlich ist oder eine Messung die richtige Einheit verwendet.

Syntax ist die erste, nicht die letzte Prüfung

JSON verwendet doppelte Anführungszeichen für Zeichenketten und Eigenschaftsnamen. Kommentare und ein Komma nach dem letzten Element gehören nicht zur Standardsyntax.

Prüfen Sie danach den Datenvertrag: Pflichtfelder, Typen, Einheiten und erlaubte Werte. quantity als Text kann gültiges JSON sein und dennoch gegen eine erwartete Zahl verstoßen.

Quellen: RFC 8259 — JSON syntax and interoperability

Leerzeichen innerhalb einer Zeichenkette sind Daten

Abstände um Strukturzeichen lassen sich ändern, ohne die Struktur zu ändern. Innerhalb von Anführungszeichen gehören sie zum Wert; Kompaktformatierung darf nicht alle Leerzeichen löschen.

ToolRoof erhält die ursprüngliche Schreibweise von Zahlen und Zeichenketten. Aus der Kennung "0042" wird nicht die Zahl 42; auch 1e3 wird nicht bloß zur anderen Darstellung umgeschrieben.

Quellen: RFC 8259 — JSON syntax and interoperability

Doppelte Schlüssel brauchen eine eigene Entscheidung

Der Standard empfiehlt eindeutige Namen pro Objekt, weil Programme Duplikate verschieden behandeln. Erfolgreiche Formatierung bestimmt nicht den beabsichtigten Wert.

Klären Sie doppelte Felder nach dem Quelldatenvertrag, statt stets auf den letzten Wert zu setzen. Eine hier erhaltene große Zahl garantiert auch keine identische Lesegenauigkeit in anderen Systemen.

Quellen: RFC 8259 — JSON syntax and interoperability

Beispiel: Eine Kiste hat einen Code, keine Rechenzahl

In {"item":"box blue","quantity":2,"amount":1e3,"code":"0042"} enthält der Name 2 Leerzeichen; quantity ist eine Zahl, amount nutzt Exponentialschreibweise und code ist Text mit 2 führenden Nullen. Einrückung muss diese Unterschiede erhalten.

Kompaktformatierung behält die 2 Leerzeichen in box blue, die Schreibweise 1e3 und die Zeichenkette "0042". Bei {"count":2,"count":3} muss die Quelle entscheiden; schönere Darstellung klärt die gemeinte Anzahl nicht.

Quellen