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}'); // throwsNBSP 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) // 32Prü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.