MiServe DevTools

Vos autocollants

Épinglez vos outils ici. Ils sont enregistrés dans ce navigateur.

Formateur et validateur JSON

Formatez, minifiez et validez du JSON, avec la ligne et la colonne exactes d'une erreur de syntaxe, et les grands nombres conservés tels qu'ils sont écrits.

S'exécute dans votre navigateur. Rien de ce que vous collez n'est envoyé.

À propos de cet outil

Ce qu'est un JSON valide

JSON est défini par la RFC 8259 et la norme ECMA-404. Un document est une seule valeur : un objet, un tableau, une chaîne, un nombre, true, false ou null. Les chaînes et les clés d'objet s'écrivent entre guillemets doubles, et il n'existe aucune syntaxe pour les commentaires.

Beaucoup de documents invalides contiennent quelque chose qu'un littéral d'objet JavaScript autorise et que JSON refuse : une virgule après le dernier élément, des guillemets simples, une clé sans guillemets ou un commentaire. Avec Corriger les erreurs courantes activé, cet outil accepte tout cela, ainsi que les sauts de ligne et les tabulations bruts dans les chaînes, une barre oblique inverse devant un guillemet simple et les True, False et None de Python ; il vous indique ce qu'il a modifié et produit du JSON strict.

Lire l'erreur

Chaque navigateur formule à sa manière une erreur de JSON.parse, et certains n'indiquent pas où elle se trouve. Cet outil lit le texte avec son propre parseur : le message, la ligne et la colonne sont donc les mêmes partout. Aller à l'erreur sélectionne le caractère fautif dans l'entrée ; quand vous collez un document entier, l'outil le fait de lui-même.

La position indiquée est celle où le parseur n'a pas pu continuer, qui peut se trouver un peu après la véritable erreur. Une virgule manquante, par exemple, est signalée au premier caractère de l'élément suivant.

Grands nombres et clés en double

La grammaire de JSON ne limite pas la taille d'un nombre, mais en JavaScript JSON.parse convertit chaque nombre en flottant 64 bits, qui ne représente exactement tous les entiers que jusqu'à 2 puissance 53 (9 007 199 254 740 992). Un identifiant plus grand, comme 12345678901234567890, ressort de JSON.parse sous la forme 12345678901234567000. Ce formateur recopie le texte de chaque nombre au lieu de le convertir : les entiers longs, 1.0 et 1e5 ressortent exactement comme ils sont entrés, et il vous avertit lorsqu'un entier ne survivrait pas à un parseur JavaScript.

La RFC 8259 indique que les clés d'un objet devraient être uniques, et que le comportement d'un logiciel qui reçoit un doublon est imprévisible. Beaucoup de parseurs ne gardent que la dernière valeur, sans avertissement. Le formateur conserve toutes les entrées et vous indique où se trouve le premier doublon.

Trier les clés ordonne les clés de chaque objet, à tous les niveaux, par unité de code UTF-16, soit l'ordre du tri par défaut de JavaScript : les chiffres, puis les majuscules, puis les minuscules. Les tableaux gardent leur ordre. La taille est comptée en octets UTF-8.

Questions

Le JSON que je colle est-il envoyé à un serveur ?

Non. Le texte est analysé et formaté par JavaScript dans l'onglet de votre navigateur, et l'outil n'envoie aucune requête réseau avec ce que vous collez.

Pourquoi les commentaires et les virgules finales provoquent-ils une erreur ?

La grammaire de la RFC 8259 ne prévoit aucune syntaxe de commentaire et exige une valeur après chaque virgule : un parseur standard rejette donc les deux. JSON5 est un format distinct qui les autorise. Activez l'option de correction pour lire un tel fichier et obtenir du JSON strict.

Quelle est la différence entre formater et minifier ?

Formater place chaque élément sur sa propre ligne et l'indente, ce qui rend la structure lisible. Minifier supprime les espaces entre les éléments, ce qui rend le document plus léger à stocker et à transmettre. Les données sont les mêmes sous les deux formes.

Trier les clés modifie-t-il les données ?

Pas pour un programme qui respecte la spécification, laquelle décrit un objet comme une collection non ordonnée de paires nom-valeur. Le tri est utile pour comparer deux documents ligne par ligne. Les tableaux sont ordonnés : leurs éléments ne sont donc jamais déplacés.

Autres outils de la catégorie Données