JSON accepte quatre caractères d’espacement syntaxique
RFC 8259 accepte U+0020, tabulation U+0009, saut U+000A et retour U+000D. NBSP U+00A0 n’est pas inclus. formatJSON accepte l’espace ordinaire après les deux-points, mais refuse NBSP. \u est un échappement JavaScript qui crée le caractère à l’exécution.
formatJSON('{"n":\u00201}'); // accepted
formatJSON('{"n":\u00A01}'); // throwsNBSP dans une chaîne est une donnée
Entre guillemets doubles, NBSP est valide ici. Formatage et minification le conservent. Le remplacer partout change le point de code entre A et B de 160 à 32. Ne modifiez pas tous les espaces des données pour réparer la syntaxe.
const source = '{"text":"A\u00A0B"}';
JSON.parse(formatJSON(source, 0).output).text.codePointAt(1) // 160
JSON.parse(source.replaceAll("\u00A0", " ")).text.codePointAt(1) // 32Consultez ligne, colonne et accès à l’erreur. Gardez l’original, ressaisissez l’espace invalide hors chaîne et validez. Pas de détection dédiée de NBSP ni correction automatique. La syntaxe valide ne garantit pas le schéma d’une API.
Questions fréquemment posées
La minification répare-t-elle les espaces invalides ?
Non. formatJSON valide avant de produire la sortie et refuse aussi NBSP hors chaîne lors de la minification. Dans une chaîne, il reste intact.