UTILS.
100 % dans le navigateur
{ }

Objet JS vers JSON strict

Réparez un littéral d'objet JavaScript laxiste — clés sans guillemets, guillemets simples, virgules finales, commentaires — en JSON strict valide, sans eval.

— la sortie apparaît ici —

À propos de cet outil

L'outil Objet JS vers JSON strict répare un littéral d'objet JavaScript ou de style JSON5 laxiste en JSON strict et valide. Il repose sur un tokenizer écrit à la main — il n'utilise jamais eval ni new Function — il est donc sûr sous une Content Security Policy stricte et sûr pour y coller du texte non fiable. Tout s'exécute dans votre navigateur.

Il accepte les choses que le vrai JSON rejette : clés d'identifiant sans guillemets, chaînes à guillemets simples, virgules finales avant ] ou }, commentaires // en ligne et /* en bloc */, littéraux hexadécimaux (0xFF), octaux et binaires, nombres à plus initial et à point initial (+1, .5), et les valeurs undefined, NaN et Infinity. Les clés sont remises entre guillemets doubles, les chaînes sont ré-échappées correctement, les commentaires et virgules finales sont retirés, et les nombres sont normalisés en nombres JSON simples. Vous choisissez comment traiter undefined (convertir en null ou supprimer la clé) et les nombres non finis (convertir en null ou lever une erreur), puis la valeur est re-sérialisée avec JSON.stringify à l'indentation de votre choix — 2 espaces, 4 espaces, tabulations ou minifié.

Quand l'entrée ne peut pas être analysée, l'outil signale la première erreur de syntaxe avec sa ligne et sa colonne pour que vous trouviez le problème rapidement. Cela complète un formateur JSON strict, qui rejette simplement les entrées laxistes — ici le but est de récupérer des sorties de console copiées, des extraits de configuration et des objets édités à la main en un JSON que n'importe quel analyseur acceptera.

Foire aux questions

Quelle syntaxe laxiste accepte-t-il ?
Clés sans guillemets, chaînes à guillemets simples, virgules finales, commentaires // et /* */, nombres hex/octaux/binaires, nombres à plus initial et à point initial, et les littéraux undefined, NaN et Infinity — les choses courantes qui rendent les objets JS copiés invalides en JSON.
Utilise-t-il eval pour analyser ?
Non. Il utilise un tokenizer écrit à la main et un analyseur en descente récursive, jamais eval ni new Function, donc il fonctionne sous une Content Security Policy stricte et est sûr pour les entrées non fiables. Il ne produit jamais que des données, n'exécute jamais de code.
Comment undefined, NaN et Infinity sont-ils gérés ?
JSON n'a pas de telles valeurs. Vous choisissez : undefined peut devenir null ou voir sa clé supprimée, et NaN/Infinity peuvent devenir null ou lever une erreur. Cela garde la sortie strictement valide en JSON dans les deux cas.
Que se passe-t-il quand l'entrée est invalide ?
L'analyseur s'arrête à la première véritable erreur de syntaxe et la signale avec la ligne et la colonne où elle s'est produite, pour que vous puissiez localiser et corriger le caractère fautif plutôt que de deviner.

Plus d'outils