Formateur & Validateur JSON

Formateur & Validateur JSON

Formatez, embellissez, validez et réparez vos flux JSON en ligne instantanément. Corrigez les erreurs de syntaxe, clés sans guillemets, minifiez et inspectez l'AST sans aucun transfert serveur.

Préréglages :
Paramètres & entrée JSONAST réparé
{
  "timestamp": 1729482000,
  "service": "auth-proxy",
  "is_authenticated": true,
  "mfa_verified": false,
  "session_metadata": null,
  "scopes": [
    "read:profile",
    "write:orders"
  ],
  "retry_count": 0
}

Topologie AST & analyse des performances en temps réel

10 Total des nœuds
Jauge du quota cible215 BLimite de quota: 256 KB
Distribution des niveaux de profondeur (L1 ~ L6+)L11L27L32L4L56+Profondeur max.: 3 niveaux
Topologie AST & analyse des performances en temps réel
10
Objets: 1
Tableaux: 1
Chaînes: 3
Nombres: 2
Booléens: 2
Valeurs nulles: 1
Métrique principale
AST réparé
BOM UTF-8 supprimé • Sauts de ligne LF normalisés
Efficacité & capacité
-2.7%
221 B → 215 B
Sortie nette
10 Total des nœuds • D:3
1 Objets • 1 Tableaux
Référence technique et guide d'architecture

Formateur JSON & Validateur en Ligne — Guide de référence

Formatez, embellissez, validez et réparez instantanément du JSON corrompu en ligne. Corrigez les erreurs de syntaxe, insérez les guillemets manquants sur les clés, minifiez et explorez les nœuds de l'arbre sans aucun transfert vers un serveur.

Formateur JSON & Validateur en Ligne — Guide de référence — Architecture en mémoire côté client et flux de données
Formateur JSON & Validateur en Ligne — Guide de référence — Architecture en mémoire côté client et flux de données

Paramètres clés et contrôles

Espaces d'indentation (indent_spaces)integer | string

Contrôle la largeur visuelle de l'indentation pour chaque niveau de bloc imbriqué. Les standards de l'industrie préconisent 2 espaces (recommandations de style Google et Airbnb), 4 espaces (normes PEP 8 et conventions Java) ou des tabulations pour un alignement à espacement fixe compact.

Par défaut : 2
Tolérance du style de guillemets (quote_style_tolerance)string

Régule la validation des guillemets de chaînes selon la section 7 de la RFC 8259. Le mode strict exige des guillemets doubles (") ; le mode tolérant accepte les guillemets simples (') ou les clés d'identifiants sans guillemets et les normalise vers la syntaxe standard.

Par défaut : strict
Gestion des virgules finales (trailing_comma_policy)string

Détermine la gestion des délimiteurs résiduels en fin d'objet ou de tableau. La norme RFC 8259 interdit formellement les virgules finales (trailing commas), tandis qu'ECMAScript 5.1 et JSON5 les autorisent pour garantir des diffs Git propres dans le contrôle de version.

Par défaut : strip
Ordre de tri des clés (key_sort_order)boolean | string

Spécifie l'ordonnancement des propriétés de l'objet. Le tri lexicographique (A-Z) garantit une sérialisation déterministe indispensable au hachage de signatures cryptographiques (RFC 8785 JSON Canonicalization Scheme / JCS) et à la comparaison de diffs.

Par défaut : preserve
Garde de précision BigInt 64 bits (bigint_precision_guard)boolean

Applique une vérification stricte des limites numériques face aux contraintes de double précision IEEE 754 (Number.MAX_SAFE_INTEGER : 9 007 199 254 740 991 ou 2^53 - 1). Les valeurs dépassant ce plafond sont signalées afin de prévenir tout arrondi silencieux et toute perte de précision.

Par défaut : true
Traitement des échappements Unicode (unicode_escape_handling)string

Configure la représentation des caractères non-ASCII. Détermine si les points de code hors de la plage ASCII (U+0080 et au-delà) sont conservés sous forme de littéraux UTF-8 natifs ou convertis en séquences d'échappement \uXXXX à 6 caractères.

Par défaut : utf-8

Conseils de pro et bonnes pratiques

Troncature en virgule flottante IEEE 754 sur les identifiants 64 bits

La méthode native JSON.parse() désérialise les nombres sous forme de flottants 64 bits IEEE 754 dotés de 53 bits de mantisse. Les entiers supérieurs à 9 007 199 254 740 991 (tels que les identifiants Snowflake de Discord ou Twitter/X, ou les horodatages en nanosecondes) subissent un arrondi silencieux sur leurs chiffres les moins significatifs. Encapsulez impérativement les grands identifiants numériques dans des chaînes entre guillemets au sein de vos charges utiles JSON.

Invalidation des empreintes cryptographiques par des clés d'objet non ordonnées

La spécification RFC 8259 stipule explicitement que l'ordre des membres d'un objet JSON n'a aucune valeur sémantique. Si vous calculez un hachage SHA-256 ou une signature HMAC sur une chaîne JSON sans trier préalablement les clés, deux structures de données identiques créées avec des ordres d'insertion différents produiront des empreintes discordantes. Appliquez toujours un tri canonique déterministe conforme à la RFC 8785 (JCS) avant tout hachage.

Pièges du marqueur d'ordre des octets (BOM) invisible et des espaces sans chasse

Les fichiers enregistrés avec un BOM UTF-8 intègrent une séquence d'octets invisible (\uFEFF) à l'indice 0. Les analyseurs JSON standards rejettent ce caractère avec l'erreur cryptique 'Unexpected token at position 0', même si le JSON semble visuellement parfait. Un formateur en production doit éliminer automatiquement le BOM initial et les espaces de largeur nulle (\u200B) lors du pré-balayage lexical.

Pièges des structures circulaires dans les graphes d'objets imbriqués

L'appel de JSON.stringify() sur une structure de données contenant des références circulaires déclenche l'exception bloquante 'TypeError: Converting circular structure to JSON'. Lors du formatage d'états d'application complexes, utilisez un algorithme avec fonction de substitution (replacer) basée sur un WeakSet pour détecter et remplacer les références cycliques par des marqueurs explicites tels que '[Circular Reference]'.

Pièges courants et dépannage

⚠️SyntaxError: Unexpected token ' in JSON at position X (Erreur de guillemets simples)

La section 7 de la RFC 8259 impose strictement l'usage de guillemets doubles (") pour délimiter les chaînes littérales et les clés d'objet. Les guillemets simples sont formellement invalides en JSON. Utilisez la fonction de réparation automatique pour convertir instantanément les chaînes entre guillemets simples et les clés non protégées en syntaxe conforme au standard RFC.

⚠️SyntaxError: Unexpected token , in JSON at position X (Virgule finale résiduelle)

Les virgules finales placées avant un crochet fermant ] ou une accolade fermante } violent les spécifications strictes du JSON, provoquant l'interruption immédiate de l'analyseur. Activez le mode permissif JSON5 ou utilisez le nettoyeur automatique pour purger les virgules redondantes avant les délimiteurs de fermeture grâce à une substitution par expression régulière avec pré-vérification positive (lookahead).

⚠️Mutation ou arrondi silencieux des identifiants Snowflake 64 bits

Les moteurs JavaScript ne peuvent pas représenter nativement des entiers supérieurs à 2^53 - 1 dans le type Number sans perte de précision. Pour des valeurs telles que 9007199254740993, entourez le nombre de guillemets doubles ("9007199254740993") ou activez la protection de précision BigInt pour traiter ces tokens numériques volumineux sous forme de chaînes de caractères sécurisées.

⚠️SyntaxError: Unexpected token / in JSON at position X (Commentaires dans le JSON)

La norme standard JSON ne prend en charge ni les commentaires sur une ligne (//) ni les blocs de commentaires (/* */). Lors du formatage de fichiers de configuration comme tsconfig.json ou les paramètres VSCode, basculez l'analyseur en mode JSON5 / Permissif pour supprimer proprement les commentaires tout en préservant l'intégrité des données valides.

Foire aux questions (FAQ)

Comment formater et valider du JSON en ligne sans risque pour la sécurité ou la confidentialité ?▼

Formatez votre JSON à l'aide d'outils web 100 % exécutés côté client (client-side), qui traitent les flux directement dans la mémoire de votre navigateur via le moteur JavaScript V8. Aucune requête réseau, aucun appel d'API ni stockage sur serveur distant n'est effectué : vos clés d'API sensibles, vos dossiers clients confidentiels et vos tokens internes ne quittent jamais votre machine.

Quelle est la différence entre les standards JSON et JSON5 ?▼

Le JSON (RFC 8259) est un format d'échange de données ultra-strict imposant des clés entre guillemets doubles, interdisant les commentaires et rejetant les virgules finales. JSON5 est un sur-ensemble compatible ECMAScript 5.1 conçu pour la lisibilité humaine, qui tolère les commentaires (// et /* */), les virgules résiduelles, les chaînes entre guillemets simples, les clés d'identifiants sans guillemets, les valeurs hexadécimales et les signes positifs explicites (+42).

Pourquoi JSON.parse() échoue-t-il sur les guillemets simples ou les clés sans guillemets ?▼

La section 7 de la RFC 8259 stipule formellement que les chaînes doivent être encadrées par des guillemets doubles (U+0022). Les guillemets simples (U+0027) sont des jetons de caractères illégaux. Les clés sans guillemets sont admises dans les littéraux d'objets JavaScript mais enfreignent la grammaire formelle JSON ; un analyseur lexical automatisé doit encapsuler ces identifiants nus entre guillemets doubles pour restaurer la conformité RFC.

Comment corriger les erreurs de références circulaires JSON (Converting circular structure to JSON) ?▼

Une erreur de structure circulaire survient lorsqu'un objet se référence lui-même directement ou indirectement via une propriété parente, provoquant une récursion infinie lors de la sérialisation. Pour y remédier, transmettez une fonction de substitution personnalisée (replacer) à JSON.stringify() en utilisant un WeakSet pour mémoriser les références d'objets déjà visitées et remplacer les nœuds récurrents par un marqueur tel que '[Circular]'.

Comment gérer les grands entiers BigInt 64 bits et les horodatages dans du JSON sans perte de précision ?▼

La fonction native JSON.parse() convertit les nombres en flottants 64 bits IEEE 754 à double précision, entraînant une troncature silencieuse pour tout entier supérieur à 9 007 199 254 740 991. Pour manipuler des identifiants 64 bits en toute sécurité (comme les snowflakes de Twitter ou les timestamps UNIX en microsecondes), utilisez un pré-analyseur par expressions régulières pour encapsuler les nombres de plus de 15 chiffres entre guillemets avant l'analyse syntaxique.

Outils et utilitaires connexes

Tous les outils →