Convertisseur JavaScript vers JSON
Colle un objet littéral ou un tableau JavaScript. Récupère du JSON valide.
Ce que fait cet outil
Tu as copié un objet littéral JavaScript depuis un fichier de config, un script de seed ou le debugger, et il te faut maintenant du JSON pour de vrai. Le hic : JS autorise les clés sans guillemets, les apostrophes, les virgules finales, undefined, les commentaires et new Date(...) — rien de tout ça n'est légal en JSON. Colle le tout ici, clique sur Convert, et tu récupères du JSON qui passe par JSON.parse sans un seul souligné rouge.
L'outil suit les mêmes règles que JSON.stringify : les clés passent en double guillemets, les strings en apostrophes basculent en doubles, les virgules finales sautent, les commentaires sont retirés, les valeurs undefined disparaissent (comportement natif de stringify), NaN et Infinity deviennent null, et les objets Date deviennent des strings ISO-8601 conformes au RFC 8259. Les règles de formatage numérique ECMAScript sont respectées, donc 1e3 reste un nombre et 0x1F devient 31.
Il gère aussi ce que tu colles depuis Node — module.exports = {...}, export default {...} des ES modules, ou une simple affectation const config = {...}. Les clés calculées, les propriétés shorthand ({ name }) et le spread ({ ...defaults, env: "prod" }) sont tous aplatis vers leur forme résolue. Les objets et tableaux imbriqués passent intacts.
Comment s'en servir
Trois étapes, que tu colles cinq lignes ou un module de config complet.
Colle ton JavaScript (ou essaie l'exemple)
Dépose le code dans l'éditeur de gauche. Un object literal, un tableau d'objets, une instruction export ou une déclaration const — le parser gère chaque cas. Clique sur Load Sample pour voir un input réaliste.
Pas besoin de retirer const, module.exports ou export default. Laisse les commentaires si tu veux — ils seront supprimés à la sortie. Consulte la référence JSON MDN si tu veux un rappel sur le mapping exact des types JSON.
Clique sur Convert
Clique sur le bouton vert Convert. L'outil parse le JS, évalue les littéraux et les sérialise exactement comme JSON.stringify(obj, null, 2).
Copie le JSON
Le panneau de droite affiche du JSON joliment formaté qui parse proprement dans n'importe quel langage. Copie-le dans ton body de requête, ton fichier de config ou un snapshot Jest.
Quand ça dépanne vraiment
Préparer des requêtes API
Tu as un objet littéral venant d'un fichier React ou Express et il te faut un body JSON pour Postman ou curl. Colle, convertis, terminé.
Migrer de la config vers JSON
Tu passes d'un <code>config.js</code> à un store de config basé sur JSON ? Colle l'export, récupère du JSON valide, intègre-le.
Fixtures de tests et mocks
Convertis un objet inline utilisé dans un test Jest en fixture JSON autonome pour MSW, Playwright ou un mock server.
Logs et sortie du debugger
Copie une valeur affichée par le REPL Node ou les Chrome DevTools (qui utilisent la syntaxe objet JS, pas JSON) et transforme-la en quelque chose que les outils en aval savent parser.
Questions fréquentes
Les clés sans guillemets et les virgules finales fonctionnent ?
Oui. Les clés identifiantes sans guillemets sont mises entre guillemets à la sortie, les apostrophes basculent en doubles, et les virgules finales sautent — exactement ce que ECMAScript autorise mais que JSON refuse.
Que deviennent undefined, NaN, Infinity et les fonctions ?
Mêmes règles que JSON.stringify : undefined et les fonctions sont omis des objets, NaN et Infinity deviennent null, et Symbol est jeté. Voir la doc MDN JSON.stringify pour la liste complète.
Les Date sont sérialisées ?
Oui. Les valeurs new Date(...) deviennent des strings ISO-8601 ("2026-03-14T10:30:00.000Z"), ce qui est le même format que produit Date.prototype.toJSON().
Je peux coller un module ES ou un export CommonJS ?
Oui — export default { ... }, export const x = { ... } et module.exports = { ... } sont tous reconnus. L'outil extrait la valeur exportée et la convertit.
Et le spread et les clés calculées ?
Les deux sont résolus vers la forme finale de l'objet. { ...defaults, env: "prod" } est fusionné, et { [name]: value } devient { "actualName": value } quand la clé est un littéral.
Mon code est stocké quelque part ?
Le code est envoyé au backend pour être converti, il n'est ni persisté ni loggé. Si tu colles quelque chose de sensible, relis-le d'abord.
Autres outils qui peuvent servir
JavaScript vers JSON n'est qu'une pièce du puzzle. Voici les outils qui vont bien avec :