Validateur JSON
Un validateur JSON analyse votre texte avec un vrai analyseur JSON et signale le premier endroit où la grammaire est rompue. Collez ici {"a": 1, "b": 2,} : le badge passe à Invalide avec le message « Expected double-quoted property name in JSON at position 16 (line 1 column 17) » - la virgule finale. Un document valide est réimprimé dans la sortie formatée ; l'exemple intégré passe de 323 o à 221 o après Minifier.
À propos de Validateur JSON
Ce validateur passe votre texte dans l'analyseur JSON du navigateur : ce qui est accepté ici sera accepté par un moteur JavaScript, un client REST ou un chargeur de configuration. Le badge à côté de l'étiquette JSON Entrée bascule entre Valide et Invalide à mesure que vous tapez. En cas d'échec, la ligne rouge reprend le message de l'analyseur et la position en caractères, puis y ajoute la ligne et la colonne correspondantes - de quoi poser le curseur sur la virgule, le guillemet ou l'accolade fautive.
Quand le texte est analysable, Valider et formater le réimprime dans la sortie formatée avec 2, 4 ou 8 espaces d'indentation, Minifier supprime tous les espaces facultatifs sur une seule ligne, et Trier les clés réécrit chaque objet avec ses clés dans l'ordre alphabétique, de façon récursive. La taille affichée à côté de chaque zone est la taille réelle en octets : l'exemple intégré fait 323 o formaté et 221 o minifié. La bande de statistiques compte les clés, objets, tableaux et valeurs ainsi que la profondeur maximale - 13 clés, 4 objets, 1 tableau, 12 valeurs et une profondeur de 3 pour ce même exemple. La requête de chemin JSON suit une expression comme $.config.theme ou $.tools[1] et affiche la valeur atteinte, ou undefined si le chemin n'existe pas.
La grammaire appliquée est celle de la RFC 8259 : ce que les gens collent le plus souvent est donc rejeté volontairement - commentaires, virgule finale, chaînes entre apostrophes, clés sans guillemets, NaN et Infinity. Deux documents collés à la suite (JSON délimité par des sauts de ligne) échouent avec « Unexpected non-whitespace character after JSON ». Deux comportements méritent d'être connus : la RFC 8259 indique que les noms d'un objet DEVRAIENT être uniques sans l'imposer, donc {"a":1,"a":2} est déclaré valide et la dernière valeur l'emporte ; et les entiers hors de la plage interopérable donnée par la RFC, de -(2^53)+1 à (2^53)-1, sont arrondis au double IEEE 754 le plus proche.
C'est un validateur de syntaxe, pas de schéma : il ne confronte pas votre document à un JSON Schema, à une définition OpenAPI ou à un schéma Avro, et il ne répare pas une entrée cassée. Tout s'exécute dans la page : ce que vous collez ne quitte pas le navigateur.
Cas d'utilisation
Comment utiliser
Collez le JSON à vérifier dans la zone JSON Entrée, ou appuyez sur le bouton presse-papiers de la rangée de boutons pour charger le document d'exemple intégré.
Surveillez le badge à côté de l'étiquette JSON Entrée : il bascule entre Valide et Invalide à chaque frappe, et la ligne rouge en dessous nomme le défaut et sa position.
Choisissez 2, 4 ou 8 espaces sur la ligne Indentation, puis appuyez sur Valider et formater pour imprimer le document indenté dans la sortie formatée.
Appuyez sur Minifier pour mettre le document sur une seule ligne, ou sur Trier les clés pour réécrire chaque objet avec ses clés dans l'ordre alphabétique, objets imbriqués compris.
Lisez la bande de statistiques - clés, objets, tableaux, valeurs et profondeur maximale - et comparez les tailles en octets affichées près des zones d'entrée et de sortie.
Tapez une expression comme $.config.theme ou $.tools[1] dans la requête de chemin JSON pour extraire une seule valeur, puis utilisez le bouton de copie pour récupérer la sortie.
Astuces Pro
- La position du message d'erreur est un décalage en caractères dans ce que vous avez collé, et la ligne et la colonne qui suivent en sont déduites. Comptez depuis le début de la zone, pas depuis le début de votre fichier d'origine.
- Les clés en double ne provoquent pas d'échec. Collez {"a": 1, "a": 2} : le badge indique Valide, la sortie affiche "a": 2 et la bande de statistiques compte une seule clé - une manière silencieuse de perdre des données qu'un validateur de schéma détecterait.
- Les identifiants de plus de 15 chiffres changent. 12345678901234567890 est réimprimé en 12345678901234567000, car l'analyseur le stocke en double. Conservez les identifiants longs sous forme de chaînes avant tout passage par un outil JSON.
- Trier les clés est récursif : il réordonne aussi les objets imbriqués, pas seulement le niveau supérieur. C'est le moyen le plus rapide de rendre deux versions d'une même configuration comparables dans un diff ligne à ligne.
- Le bouton presse-papiers de la rangée de boutons charge un document d'exemple si vous voulez simplement voir l'outil fonctionner ; le bouton corbeille juste à côté vide en une fois l'entrée, la sortie, les statistiques et la ligne d'erreur.
Dépannage
Le badge indique Invalide et le message est « Expected double-quoted property name in JSON ».
Une virgule n'est suivie de rien d'exploitable - presque toujours une virgule finale avant une accolade ou un crochet fermant. Coller {"a": 1, "b": 2,} signale la position 16, ligne 1, colonne 17. Supprimez la dernière virgule : JSON n'autorise aucune virgule finale, contrairement aux littéraux d'objet JavaScript.
Le message est « Expected property name or '}' in JSON at position 1 ».
La première clé n'est pas une chaîne entre guillemets doubles. {'a': 1} comme {a: 1} produisent ce message en position 1. JSON n'a ni chaînes entre apostrophes ni clés nues ; passez chaque clé et chaque valeur textuelle en guillemets doubles. Un commentaire // ou /* */ avant la première clé donne le même message, à la position du commentaire.
Le message est « Unexpected non-whitespace character after JSON ».
Le premier document s'est terminé et un autre a commencé. Coller {"a":1} et {"b":2} sur deux lignes signale la position 8, ligne 2, colonne 1. C'est du JSON délimité par sauts de ligne, c'est-à-dire un flux de documents et non un document : validez les lignes une par une, ou entourez-les de crochets en les séparant par des virgules.
Le document est déclaré valide mais une clé a disparu de la sortie.
L'objet contenait deux fois le même nom. La RFC 8259 dit que les noms d'un objet DEVRAIENT être uniques sans l'exiger, et cet analyseur garde le dernier : {"a": 1, "a": 2} affiche "a": 2 et la bande de statistiques compte une seule clé. Cherchez le nom répété dans la source ; rien sur cette page ne vous en avertira.
Un identifiant numérique long revient avec des chiffres différents à la fin.
Les nombres sont analysés comme des doubles IEEE 754 : 12345678901234567890 est réimprimé en 12345678901234567000. La RFC 8259 ne garantit l'interopérabilité que pour les entiers compris entre -(2^53)+1 et (2^53)-1. Mettez les identifiants longs entre guillemets à la source ; aucune option de formatage ici ne récupère les chiffres perdus.
Questions fréquemment posées
C'est un outil qui passe votre texte dans un analyseur JSON et indique s'il respecte la grammaire de la RFC 8259, et à quel endroit il cesse de la respecter. Cette page affiche un badge Valide ou Invalide à côté de l'entrée, le message de l'analyseur avec la position du premier défaut et, si le document s'analyse, une copie reformatée plus un décompte des clés, objets, tableaux, valeurs et de la profondeur d'imbrication.
Collez le document dans la zone JSON Entrée. La validation s'exécute à chaque frappe : le badge passe à Valide ou Invalide sans rien cliquer. S'il est invalide, la ligne rouge sous la zone nomme le problème et sa position ; corrigez sur place et le badge bascule. S'il est valide, appuyez sur Valider et formater pour obtenir une copie indentée dans la sortie formatée.
Un objet, un tableau, une chaîne entre guillemets doubles, un nombre, true, false ou null - imbriqués à n'importe quelle profondeur. Les clés doivent être des chaînes entre guillemets doubles. Ce qui est interdit : les commentaires, une virgule après le dernier élément, les apostrophes, les clés sans guillemets, NaN, Infinity et un second document après le premier. Chacun produit ici un message distinct, donc la ligne rouge vous dit quelle règle a été enfreinte.
La RFC 8259 ne définit aucune syntaxe de commentaire : un analyseur strict doit donc les rejeter. Coller {"a": 1} avec une ligne // note au-dessus de la clé donne « Expected property name or '}' in JSON » pointant sur le commentaire. Les formats qui les acceptent - JSONC dans les réglages de VS Code, JSON5, tsconfig.json - sont des sur-ensembles, et leurs outils retirent les commentaires avant qu'un analyseur standard ne voie le texte.
Non. Cette page vérifie uniquement la syntaxe : elle répond à « est-ce analysable ? », pas à « est-ce conforme à mon contrat ? ». Elle ne contrôle ni les propriétés obligatoires, ni les types, ni les énumérations, ni les formats d'un JSON Schema, d'une définition OpenAPI ou d'un schéma Avro. Servez-vous-en d'abord pour prouver que le document est bien formé, puis lancez un validateur de schéma : un résultat de schéma sur une entrée non analysable n'a de toute façon aucun sens.
Non, et c'est volontaire. Deviner s'il faut supprimer une virgule égarée ou insérer une valeur après elle peut modifier vos données en silence. Ce que l'outil fait à la place, c'est vous placer sur le caractère exact : le message donne la position, la ligne et la colonne, et la validation se relance pendant que vous corrigez, si bien que le badge passe au vert dès que le dernier défaut disparaît.
C'est la formulation de l'analyseur du navigateur quand le tout premier jeton est déjà incorrect, et elle vous renvoie le texte fautif. Coller {"a": NaN} produit : Unexpected token 'N', "{"a": NaN}" is not valid JSON. NaN et Infinity sont des littéraux numériques JavaScript que la RFC 8259 ne prévoit pas ; encodez-les en null ou en chaîne avant la sérialisation.
Ouvrez le fichier dans un éditeur, sélectionnez tout et collez dans la zone JSON Entrée : l'outil n'a pas de champ de téléversement, et coller garde le fichier hors du réseau. La taille en octets affichée à côté de la zone confirme que tout est arrivé ; si elle est inférieure à celle du fichier sur le disque, c'est votre éditeur qui a tronqué la sélection, pas l'outil.
VS Code valide tout fichier qu'il reconnaît comme JSON et souligne les fautes dans l'éditeur ; son mode JSONC tolère en plus les commentaires dans les fichiers de réglages. Notepad++ a besoin du greffon JSON Viewer, installé depuis Plugins Admin, pour analyser le contenu. Les deux travaillent sur un fichier déjà ouvert ; cette page sert pour la charge utile que vous venez de copier depuis un journal, un terminal ou l'onglet réseau du navigateur.
Il n'y a pas de plafond fixe : l'analyse a lieu dans votre onglet et la limite est la mémoire de cet onglet. Quelques centaines de kilo-octets passent instantanément. Des fichiers de plusieurs mégaoctets s'analysent encore, mais valider à chaque frappe rend la saisie lourde : collez-les, lisez le résultat, et éditez la source dans un vrai éditeur plutôt que dans la zone.