JSON erlaubt vier Syntaxleerraumzeichen

RFC 8259 erlaubt U+0020, Tab U+0009, Zeilenumbruch U+000A und Wagenrücklauf U+000D. NBSP U+00A0 gehört nicht dazu. formatJSON akzeptiert ein normales Leerzeichen nach dem Doppelpunkt, lehnt NBSP aber ab. \u ist ein JavaScript-String-Escape, das das Zeichen zur Laufzeit erzeugt.

formatJSON('{"n":\u00201}'); // accepted
formatJSON('{"n":\u00A01}'); // throws
U+0020 außerhalb einer Zeichenfolge besteht die JSON-Prüfung; U+00A0 scheitert
Eigenes Diagramm: Grün bedeutet akzeptiert, Rot abgelehnt. Codes entsprechen den getesteten Eingaben; kein UI-Bild.

RFC 8259 §2: JSON Grammar

NBSP innerhalb einer Zeichenfolge ist ein Datenzeichen

In doppelten Anführungszeichen ist NBSP hier gültig. Formatierung und Minifizierung bewahren es. Ersetzen im gesamten Quelltext ändert den Codepunkt zwischen A und B von 160 auf 32. Ändern Sie Datenleerzeichen nicht pauschal bei einer Syntaxreparatur.

const source = '{"text":"A\u00A0B"}';
JSON.parse(formatJSON(source, 0).output).text.codePointAt(1) // 160
JSON.parse(source.replaceAll("\u00A0", " ")).text.codePointAt(1) // 32

RFC 8259 §7: Strings

Prüfen Sie Fehlerzeile, Spalte und den Sprung zur Fehlerstelle. Bewahren Sie das Original auf, tippen Sie ungültigen Leerraum außerhalb von Strings neu und prüfen Sie erneut. Es gibt keine spezielle NBSP-Erkennung oder automatische Reparatur. Syntaxprüfung prüft kein API-Schema.

Häufig gestellte Fragen

Repariert Minifizierung ungültigen Leerraum?

Nein. formatJSON prüft vor der Ausgabe und lehnt NBSP außerhalb von Strings auch beim Minifizieren ab. Innerhalb von Strings bleibt es erhalten.