JSON permite quatro espaços de sintaxe
RFC 8259 permite U+0020, tabulação U+0009, nova linha U+000A e retorno U+000D. NBSP U+00A0 não faz parte da lista. formatJSON aceita espaço comum depois dos dois-pontos e rejeita NBSP. A notação \u é um escape JavaScript que cria o caractere na execução.
formatJSON('{"n":\u00201}'); // accepted
formatJSON('{"n":\u00A01}'); // throwsNBSP dentro de uma string é dado
Entre aspas duplas, NBSP é válido neste exemplo. Formatação e minificação o preservam. Substituí-lo em todo o texto muda o código entre A e B de 160 para 32. Não altere indiscriminadamente espaços nos dados ao corrigir sintaxe.
const source = '{"text":"A\u00A0B"}';
JSON.parse(formatJSON(source, 0).output).text.codePointAt(1) // 160
JSON.parse(source.replaceAll("\u00A0", " ")).text.codePointAt(1) // 32Confira linha, coluna e o controle para ir ao erro. Guarde o original, redigite o espaço inválido fora das strings e valide. Não há detecção específica de NBSP nem correção automática. A validação de sintaxe não verifica o esquema de uma API.
Perguntas frequentes
A minificação corrige espaços inválidos?
Não. formatJSON verifica sintaxe antes da saída, portanto também rejeita NBSP fora das strings na minificação. Dentro delas, o caractere permanece.