JSON admite cuatro espacios de sintaxis

RFC 8259 admite U+0020, tabulación U+0009, salto U+000A y retorno U+000D. NBSP U+00A0 no está incluido. formatJSON acepta el espacio normal tras los dos puntos y rechaza NBSP. La notación \u es un escape JavaScript que crea el carácter al ejecutarse.

formatJSON('{"n":\u00201}'); // accepted
formatJSON('{"n":\u00A01}'); // throws
U+0020 fuera de una cadena pasa la validación; U+00A0 falla
Diagrama propio: verde indica aceptación y rojo rechazo. Los códigos corresponden a las entradas probadas; no es una captura de interfaz.

RFC 8259 §2: JSON Grammar

NBSP dentro de una cadena es un dato

Dentro de comillas dobles, NBSP es válido en este ejemplo. El formato y la minificación lo conservan. Sustituirlo en todo el origen cambia el código entre A y B de 160 a 32. No cambies indiscriminadamente espacios en datos al reparar sintaxis.

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

Consulta línea, columna y el control para ir al error. Conserva el original, vuelve a escribir el espacio inválido fuera de cadenas y valida. No hay detector específico de NBSP ni reparación automática. La validación sintáctica no comprueba el esquema de una API.

Preguntas frecuentes

¿La minificación repara espacios inválidos?

No. formatJSON valida antes de generar salida, por lo que también rechaza NBSP fuera de cadenas al minificar. Dentro de cadenas se conserva.