✅

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.

✓ Valide ✗ Invalide
Erreur:
Indentation:
Clés
Objets
Tableaux
Valeurs
Profondeur

Intégrer cet outil sur votre site

× px

                        

💡 Conseil d'intégration

Copiez le code d'intégration et collez-le dans le HTML de votre site. La version responsive s'adapte automatiquement à toutes les tailles d'écran.

0 avis
✓

À 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

Un développeur back-end colle une réponse d'API refusée par sa bibliothèque cliente, lit la position dans la ligne d'erreur et découvre la virgule finale laissée par une étape de gabarit avant même que la charge utile n'atteigne l'analyseur.
Un ingénieur DevOps vérifie un fichier de configuration modifié à la main avant un déploiement : le badge confirme qu'il s'analyse, et la profondeur indiquée dans la bande de statistiques montre que l'imbrication correspond toujours à ce qu'attend le chargeur.
Une rédactrice technique prépare un extrait de documentation et lance Trier les clés pour que tous les objets d'exemple apparaissent dans le même ordre alphabétique sur la page, puis copie la sortie formatée directement dans la doc.
Une ingénieure QA colle une réponse capturée et tape $.config.theme dans la requête de chemin JSON pour extraire un seul champ d'un corps très imbriqué, au lieu de le parcourir dans les outils de développement.
Un développeur front-end qui allège un fichier de données appuie sur Minifier et compare les deux tailles en octets affichées près des zones pour décider si le gain vaut la perte d'un diff lisible.

Comment utiliser

1

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é.

2

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.

3

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.

4

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.

5

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.

6

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

Problème:

Le badge indique Invalide et le message est « Expected double-quoted property name in JSON ».

Solution:

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.

Problème:

Le message est « Expected property name or '}' in JSON at position 1 ».

Solution:

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.

Problème:

Le message est « Unexpected non-whitespace character after JSON ».

Solution:

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.

Problème:

Le document est déclaré valide mais une clé a disparu de la sortie.

Solution:

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.

Problème:

Un identifiant numérique long revient avec des chiffres différents à la fin.

Solution:

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.

Outils populaires

Plus d'outils à afficher
Explorer tous les outils
FreeWebTools AI
Powered by free AI models · Full chat →