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