Convertir un objet JavaScript en JSON strict
Collez un objet JavaScript avec des clés sans guillemets, des apostrophes, des commentaires ou une virgule finale, et récupérez un JSON strict et échappé. Pour convertir JS en JSON, ce convertisseur d’objet JavaScript en JSON utilise un analyseur qui lit le texte sans jamais l’exécuter comme du code : vous pouvez donc coller du texte venant d’une console, d’un fichier de configuration ou d’un exemple de code.
Convertir un objet JavaScript en JSON, pas à pas
- Collez l’objet dans la zone Objet JavaScript ou JSON. Au moment du collage, la conversion est immédiate. Si vous tapez, le résultat se met à jour environ 300 millisecondes après votre dernière frappe.
- Dans Format, choisissez la présentation du résultat : Minifié (par défaut, sur une seule ligne), 2 espaces ou 4 espaces.
- Lisez le résultat sous JSON strict. En dessous apparaissent « Converti en JSON strict. » et le nombre de caractères.
- Sélectionnez Copier, juste sous le résultat. Le bouton affiche Copié un instant.
- Sélectionnez Effacer pour vider la zone et recommencer.
Un petit exemple : vous collez {name: 'Ana', tags: ['a', 'b',], id: 0xFF}. Avec Minifié, le résultat est {"name":"Ana","tags":["a","b"],"id":255}.
Quelle syntaxe JavaScript souple est acceptée
Le texte est lu avec l’analyseur JSON5, qui connaît les différences entre un littéral d’objet JavaScript et le JSON. Chacune de ces formes est convertie au lieu d’être rejetée :
- Clé sans guillemets :
{name: "Ana"}devient{"name":"Ana"}. - Chaîne entre apostrophes :
{a: 'x'}devient{"a":"x"}. - Virgule finale :
[1, 2,]devient[1,2]. - Commentaires :
// noteet/* note */sont supprimés. - Nombre hexadécimal :
0xFFdevient255. - Plus initial ou point décimal isolé :
+1,.5et5.deviennent1,0.5et5. - NaN et Infinity :
{a: Infinity}devient{"a":null}. - Une chaîne coupée sur plusieurs lignes par une barre oblique inverse devient une seule chaîne, sans saut de ligne.
Les guillemets, les barres obliques inverses et les sauts de ligne à l’intérieur d’une chaîne sont échappés pour vous : 'He said "hi"' devient "He said \"hi\"". Ce qui est déjà du JSON valide passe tel quel, à la présentation choisie près.
Minifier ou indenter avec 2 ou 4 espaces
Le menu Format se trouve au-dessus du résultat. Minifié écrit tout sur une seule ligne, sans espaces, ce qui convient au corps d’une requête, à des données de test ou à une valeur à coller dans une chaîne.
2 espaces et 4 espaces donnent une version indentée, plus facile à lire et à comparer. Le résultat change dès que vous choisissez, et Copier prend ce que vous voyez.
Ce qui n’est pas lu et le message d’erreur
Seules les données sont acceptées, pas le code. Quand l’analyseur s’arrête, un encadré rouge intitulé Lecture impossible donne une raison claire et la position, par exemple « Ligne 1, colonne 6 ». Avec {a:1 b:2}, il s’arrête sur le b et vous invite à vérifier s’il manque juste avant une virgule, un deux-points, un crochet ou un guillemet. Si le texte se termine alors qu’un crochet, une accolade ou un guillemet reste ouvert, le message est « Le texte se termine trop tôt. »
const x = {a: 1}: il s’arrête sur la première lettre. Collez seulement l’objet.{a: 1};: il s’arrête sur le point-virgule final. Supprimez-le.- Une chaîne entre accents graves (modèle) n’est pas acceptée. Utilisez des apostrophes ou des guillemets.
undefined, une fonction ounew Date()ne sont pas acceptés : ce sont du code ou ils n’ont pas de forme en JSON. Écrivez la date sous forme de chaîne.- S’il manque une virgule, un deux-points ou un crochet, l’analyseur s’arrête sur le caractère qui suit le trou et indique la ligne et la colonne.
Stringify JSON : nombres, clés en double et autres changements
Le résultat est produit par le JSON.stringify du navigateur lui-même : les nombres sont donc des nombres JavaScript. Voici ce que cela entraîne, à connaître avant de copier :
- Les entiers supérieurs à
9007199254740991perdent en précision :12345678901234567890devient12345678901234567000. 1.0devient1et0xFFdevient255.- NaN, Infinity et -Infinity deviennent
null. - Si une clé apparaît deux fois, la dernière valeur est conservée.
Si vos données sont déjà du JSON valide et que vous voulez seulement les indenter sans toucher à un seul chiffre, utilisez le « Formateur JSON ». Pour vérifier un JSON par rapport à un schéma, utilisez le « Validateur de schéma JSON ».
Limites et confidentialité
- Jusqu’à 5 000 000 de caractères. Un texte plus long est refusé, avec un message qui vous indique la limite.
- L’analyse n’exécute jamais votre texte : un code collé ne peut donc pas s’exécuter.
- Votre texte est converti entièrement sur votre appareil. Rien n’est envoyé ni enregistré.
Questions fréquentes
Comment convertir un objet JavaScript en JSON ?
Collez l’objet dans la zone « Objet JavaScript ou JSON ». La conversion est immédiate au collage, ou environ 300 millisecondes après votre dernière frappe, et le JSON strict apparaît sous « JSON strict ». Sélectionnez « Copier » pour l’emporter. Collez seulement l’objet lui-même, pas une ligne comme const data = {...};.
Comment remplacer les apostrophes par des guillemets dans un JSON ?
Collez le texte. Chaque chaîne entre apostrophes ressort entre guillemets, et un guillemet à l’intérieur est échappé pour vous : 'He said "hi"' devient "He said \"hi\"". Seuls les chaînes et les clés sont modifiées, une apostrophe dans une chaîne entre guillemets reste donc intacte.
Comment retirer la virgule finale d’un JSON ?
Collez le texte. Une virgule après le dernier élément d’un objet ou d’un tableau, comme dans [1, 2,], est acceptée en entrée et absente du résultat sous « JSON strict ». Rien d’autre ne change dans les données.
Un JSON peut-il avoir des clés sans guillemets ou des commentaires ?
Le JSON strict, non : chaque clé et chaque chaîne demandent des guillemets doubles, et il n’existe pas de syntaxe de commentaire. Les objets JavaScript et les fichiers de configuration ont souvent les deux. Cet outil les lit, écrit les clés entre guillemets doubles et supprime les commentaires : le résultat est un JSON valide.
JSON5 vers JSON : quelle différence entre JSON et JSON5 ?
JSON5 est un sur-ensemble plus souple du JSON, qui autorise les clés sans guillemets, les chaînes entre apostrophes, les virgules finales, les commentaires, les nombres hexadécimaux et quelques autres formes propres à JavaScript. Cet outil lit cette syntaxe et écrit du JSON ordinaire : un document JSON5 sans valeur non prise en charge devient un JSON que tous les analyseurs acceptent.
Comment minifier un JSON ou l’indenter avec 2 ou 4 espaces ?
Utilisez le menu « Format » au-dessus du résultat. « Minifié », l’option par défaut, donne une seule ligne sans espaces. 2 espaces et 4 espaces donnent une version indentée. Le résultat et ce que prend « Copier » changent dès que vous choisissez une autre option.
Pourquoi s’affiche-t-il « Lecture impossible » ?
Le texte n’est pas un objet, un tableau ou une valeur que l’analyseur comprend. L’encadré rouge indique où il s’est arrêté, par exemple « Ligne 1, colonne 6 », et ce qu’il faut vérifier : une virgule, un deux-points, un crochet ou un guillemet manquant juste avant, ou un crochet, une accolade ou un guillemet encore ouvert à la fin. Les instructions comme const x = {...}, un point-virgule final, les chaînes entre accents graves, undefined, les fonctions et new Date() ne sont pas acceptées. Collez seulement l’objet.
Le JavaScript que je colle est-il exécuté ?
Non. Le texte est lu par un analyseur (JSON5), jamais par eval : rien de ce que vous collez ne peut s’exécuter. C’est aussi pourquoi le code est rejeté : une fonction, un nom de variable ou new Date() est une erreur, pas quelque chose à évaluer.
Pourquoi mon grand nombre a-t-il changé, et que deviennent NaN et les clés en double ?
Les nombres deviennent des nombres JavaScript, exacts seulement jusqu’à 9007199254740991 : 12345678901234567890 ressort en 12345678901234567000 et 1.0 en 1. Si vous devez garder chaque chiffre d’un long identifiant, mettez-le entre guillemets dans votre texte, ou utilisez le « Formateur JSON », qui recopie les nombres tels qu’écrits. NaN, Infinity et -Infinity deviennent null, car le JSON n’a aucune façon de les écrire. Si une clé apparaît deux fois, la dernière valeur l’emporte.
Est-ce la même chose que JSON.stringify, et quelle taille de texte est acceptée ?
Le résultat est fabriqué avec JSON.stringify, les règles de sortie sont donc les mêmes. La différence tient à l’entrée : JSON.stringify exige un vrai objet dans votre code, alors qu’ici vous collez le texte de l’objet, syntaxe souple comprise. Le texte peut atteindre 5 000 000 de caractères. La conversion se fait sur votre appareil et rien n’est envoyé ni enregistré.
Recommandés
-
Carnet Leuchtturm1917 A5, pointillésEsquissez le corps de la requête sur papier avant de le coller
-
Souris ergonomique verticale Logitech LiftMénagez votre poignet pendant les longues séances de test d’API
-
Casque à réduction de bruit Soundcore Q30Du calme pour rester concentré en nettoyant encore un fichier de config
Aide à garder les outils gratuits. ✨
Images non contractuelles. En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.