Formater du JSON
Collez du JSON, et il est remis en forme ou compressé sur une seule ligne.
Résultat
Collez du JSON dans le champ ci-dessus.
Comment ça marche
JSON est un format textuel pour données structurées, bâti avec des objets à champs nommés, des listes, des chaînes, des nombres, vrai, faux et vide.
La mise en forme ne change que les espaces. Les données sont les mêmes avant et après : vous pouvez donc remettre un fichier en forme sans crainte avant de le lire.
La compression retire toutes les espaces et tous les retours à la ligne superflus, ce qui réduit d’ordinaire de vingt à trente pour cent la taille d’un JSON indenté.
Si le texte ne s’analyse pas, le message d’erreur de l’analyseur du navigateur apparaît ; il montre en général quel caractère était inattendu. Les cas les plus fréquents sont une virgule de trop avant une accolade fermante et des guillemets du mauvais type.
Les commentaires ne sont pas permis en JSON, et les noms de champs doivent être entre guillemets droits doubles. C’est la différence la plus courante avec la façon dont on écrit les objets en JavaScript.
Comment l’outil met en forme
L’outil procède en deux temps. Le texte passe d’abord par la fonction JSON.parse du navigateur, mais seulement pour vérifier qu’il est valide. La mise en forme parcourt ensuite votre propre texte caractère par caractère : les blancs hors des chaînes sont retirés, et des retours à la ligne et des retraits de deux ou quatre espaces sont ajoutés après les accolades, les crochets et les virgules. Les objets et les tableaux vides s’écrivent sans espace. Les chaînes sont recopiées telles quelles, séquences d’échappement comprises. La minification est le même parcours, sans retours à la ligne ni retraits.
Les nombres restent tels qu’écrits
Lire du JSON en JavaScript puis le réécrire peut changer les nombres, parce que JavaScript n’a qu’un type de nombre, à précision limitée. Testé avec le code de l’outil, l’entier 12345678901234567890 devient 12345678901234567000, le nombre 1.0 devient 1, et 1e400 devient null. Dans l’outil, les trois restent exactement tels qu’ils sont écrits. La RFC 8259 ne considère comme sûrs entre systèmes que les entiers jusqu’à 2⁵³ − 1, soit 9 007 199 254 740 991, et I-JSON (RFC 7493) recommande de transmettre les nombres exacts plus grands sous forme de chaînes.
Noms en double
Un objet qui contient deux fois le même nom passe la vérification. La RFC 8259 dit seulement que les noms devraient être uniques, et que le comportement d’un destinataire face aux doublons est imprévisible ; beaucoup d’analyseurs ne gardent que la dernière valeur. L’outil garde les deux, si bien que le doublon reste visible dans le résultat. Un aller-retour par JavaScript aurait silencieusement supprimé la première valeur. I-JSON interdit purement et simplement les doublons.
Erreurs courantes
Une tabulation ou un retour à la ligne à l’intérieur d’une chaîne rend le texte invalide, car la RFC 8259 exige que les caractères de contrôle U+0000 à U+001F soient échappés, comme \t pour une tabulation. Cela arrive facilement quand on colle du texte depuis un tableur. NaN et Infinity, qui existent en JavaScript mais pas en JSON, sont refusés aussi, de même qu’une marque d’ordre des octets au début, bien que la RFC 8259 permette aux analyseurs de l’ignorer.