Structure et syntaxe du format JSON
Le format JSON (JavaScript Object Notation) est un standard de représentation de données textuelles structurées. Il repose sur deux structures de données fondamentales: les objets, qui sont des collections de paires clé-valeur, et les tableaux, qui sont des listes ordonnées de valeurs.
Pour être considéré comme valide, le JSON doit respecter des règles syntaxiques strictes. Les clés des objets doivent obligatoirement être des chaînes de caractères entourées de guillemets doubles. Les valeurs autorisées se limitent aux chaînes de caractères, aux nombres, aux booléens (true ou false), à la valeur null, aux objets ou aux tableaux. Contrairement à d'autres langages, le JSON standard n'autorise pas les commentaires ni les virgules traînantes à la fin des listes ou des objets. L'analyse rigoureuse de cette syntaxe est essentielle pour garantir l'échange de données entre les API et les applications sans interruption de service.
Validation et détection des erreurs de syntaxe
Lors de l'analyse de données JSON, la validation permet d'identifier précisément les écarts par rapport à la spécification standard. En cas de non-conformité, l'outil affiche le message "JSON invalide" et localise l'anomalie en indiquant la "ligne ‹line›, colonne ‹col›". Un bouton "Aller à l’erreur" permet de naviguer directement vers l'emplacement du problème dans l'éditeur.
Les erreurs de syntaxe courantes incluent:
- Virgule manquante entre les éléments: Omission du séparateur requis entre deux propriétés d'un objet ou deux éléments d'un tableau.
- Virgule en trop avant le crochet fermant: Présence d'une virgule finale (trailing comma) non autorisée par la spécification standard.
- Les clés d’objet doivent être entourées de guillemets doubles: Utilisation de guillemets simples ou absence de guillemets autour des clés.
- Deux-points manquant après un nom de propriété: Absence du délimiteur entre la clé et sa valeur associée.
- Une chaîne n’a pas de guillemet fermant: Chaîne de caractères interrompue ou mal délimitée.
- Le JSON se termine trop tôt — il semble tronqué: Fin de fichier prématurée laissant des structures ouvertes.
- Caractère inattendu à la place d’une valeur: Présence d'un symbole non reconnu par la grammaire JSON.
- Ce JSON est trop profondément imbriqué pour être traité: Dépassement des limites de profondeur d'analyse de l'outil.
- Clé dupliquée
‹key›— supprimez-en une avant de formater: Présence de clés identiques au sein d'un même objet, ce qui bloque le formatage pour éviter toute fusion ou perte silencieuse de données.
Techniques de formatage et de minification
Le traitement du JSON répond à deux besoins opposés mais complémentaires: la lisibilité humaine et l'optimisation technique.
Le formatage consiste à structurer le document en appliquant un niveau d'indentation sélectionnable. Cette opération réorganise visuellement le code pour faciliter sa lecture et sa maintenance. Une fois l'action exécutée, l'outil affiche "JSON formaté.". L'outil propose également une fonction "Trier les clés". Cette option "Trie récursivement les clés des objets par ordre de points de code. L’ordre des tableaux ne change jamais.". Après application, le message "Clés triées — l’ordre des tableaux est inchangé. Appuyez sur Ctrl/Cmd+Z pour annuler." confirme l'opération.
À l'inverse, la minification optimise le document pour le stockage ou la transmission réseau. L'action "Minifier" supprime tous les caractères non significatifs, tels que les espaces, les tabulations et les retours à la ligne. Le volume de données est ainsi réduit au strict minimum sans altérer l'intégrité des valeurs. L'outil confirme cette opération par le message "JSON minifié.". Durant ces processus, l'outil préserve les grands entiers sans perte de précision.
Navigation structurelle via l'arborescence
Pour explorer des structures de données complexes, l'affichage sous forme d'arborescence interactive ("Arborescence") offre une alternative visuelle au code brut ("Code"). Cette vue représente le document sous la forme d'un arbre hiérarchique débutant par le nœud "racine".
[+] racine
[-] configuration
taille: 1024
actif: true
L'interface propose des fonctionnalités dédiées à la navigation et à l'extraction:
- Recherche ciblée: Le champ "Rechercher des clés et des valeurs" permet de localiser des éléments spécifiques. Le nombre de correspondances est indiqué sous la forme "
‹current›sur‹total›" ou "‹current›sur‹total›+" en cas de dépassement du seuil d'affichage, ou "Aucun résultat". Les boutons "Résultat précédent" et "Résultat suivant" permettent de naviguer entre les occurrences. - Contrôle du déploiement: Les commandes "Tout développer" et "Tout réduire" ajustent globalement l'affichage. Individuellement, les boutons "Développer
‹key›" et "Réduire‹key›" permettent d'inspecter des branches spécifiques. - Extraction de chemins: Le menu "Options de copie pour
‹key›" permet d'extraire des données précises via trois options: "Copier la valeur", "Copier le JSON Pointer" (selon la RFC 6901) ou "Copier le JSONPath".
Cette vue interactive est soumise à des contraintes de validation et de taille. Si le document comporte des erreurs, l'onglet affiche "Corrigez le JSON pour le voir sous forme d’arborescence.". Si le volume de données est trop important, le message "Ce JSON est trop volumineux pour s’afficher en arborescence." ou "Ce JSON contient trop de valeurs pour être affiché en arborescence." apparaît. Lors d'un déploiement global sur un fichier volumineux, l'affichage est limité avec le message: "Ce JSON est trop volumineux pour être entièrement développé — affichage des ‹count› premières lignes.", accompagné d'un bouton "Afficher ‹count› de plus…".
Gestion des formats non standards et réparation
Le formateur est capable d'identifier plusieurs variantes non standards du JSON et de proposer des corrections automatisées via le bouton "Prévisualiser la correction". L'interface de prévisualisation ("Aperçu de la correction") affiche côte à côte le document "Original" et le résultat "Après correction". Si le document est trop grand, la mention "Aperçu tronqué — la correction porte sur tout le document." s'affiche.
Les formats détectés et leurs actions de réparation associées sont les suivants:
| Format détecté | Message de détection | Action de correction |
|---|---|---|
| Bloc Markdown | "Ceci ressemble à du JSON placé dans un bloc de code Markdown." | "L’application ne conserve que le JSON contenu dans le bloc." |
| JSON échappé | "Ceci ressemble à du JSON échappé à l’intérieur d’une chaîne." | "L’application déséchappe la chaîne en JSON brut." |
| Dictionnaire Python | "Ceci ressemble à un dictionnaire de style Python plutôt qu’à du JSON." | "L’application réécrit les guillemets et True/False/None en JSON." |
| JSON Lines | "Ceci ressemble à du JSON Lines — une valeur par ligne." | "L’application regroupe les lignes dans un seul tableau JSON." |
| Rappel JSONP | "Ceci ressemble à du JSON enveloppé dans un rappel JSONP." | "L’application supprime l’enveloppe du rappel." |
| Syntaxe JSONC | "Ceci ressemble à du JSONC — commentaires ou virgules finales. Passez la syntaxe en JSONC ou appliquez la correction." | "L’application supprime les commentaires et les virgules finales." |
Si la correction est possible, l'utilisateur clique sur "Appliquer la correction" pour valider les modifications, ce qui affiche le message "Correction appliquée. Appuyez sur Ctrl/Cmd+Z pour annuler.". Dans le cas contraire, le système indique: "Impossible de corriger automatiquement cette entrée.". L'utilisateur peut également choisir de basculer explicitement la "Syntaxe" entre "JSON" et "JSONC" pour tolérer les commentaires sans les supprimer.
Limites techniques et traitement des fichiers
L'outil permet d'importer des données en collant directement le texte ou en ouvrant un fichier .json ou .txt via le bouton "Ouvrir un fichier" ou par glisser-déposer ("Déposez un fichier.json ou.txt ici"). Lors du chargement, le message "‹name› chargé (‹size›)." s'affiche, et les statistiques de l'éditeur indiquent le nombre de "Caractères", de "Lignes" et la "Taille" du document.
Le traitement des données est soumis à des limites strictes pour préserver les performances du navigateur:
- Taille maximale des fichiers: La limite absolue d'importation et de traitement est de 10 MiB. En cas de dépassement, l'outil affiche "Fichier trop volumineux — la limite est de
‹limit›." ou "L’entrée dépasse‹limit›, ce qui est plus que ce que cet outil peut traiter.". - Type et encodage: Seuls les fichiers
.jsonou.txtencodés en UTF-8 sont acceptés. Les erreurs "Type de fichier non pris en charge — choisissez un fichier.json ou.txt." ou "Ce fichier n’est pas du texte UTF-8, il ne peut donc pas être ouvert ici." s'affichent en cas de non-respect de ces critères. - Seuil de traitement synchrone: Le seuil de traitement synchrone est fixé à 250 000 caractères. Au-delà de cette taille, ou si l'analyse prend trop de temps, le processus est stoppé avec le message: "La vérification de ce JSON a pris trop de temps et a été interrompue. Essayez un document plus petit.".
- Erreurs de lecture: Si le fichier est corrompu ou inaccessible, le message "Impossible de lire ce fichier. Essayez de le sélectionner à nouveau." apparaît.
Confidentialité des données
La sécurité de vos données est garantie par l'architecture de l'application. Votre JSON est traité dans votre navigateur. Rien n’est téléversé vers BroBroGo. Toutes les opérations de validation, de formatage, de tri et de conversion s'effectuent localement sur votre machine, sans aucun échange de données avec des serveurs externes.
FAQ
Mon JSON est-il téléversé?
Non. Le formateur s’exécute dans votre navigateur et ne téléverse pas votre JSON. Vos données restent strictement locales.
Que fait la minification?
La minification supprime les espaces et retours à la ligne inutiles sans changer les données JSON. Cela permet de réduire la taille du fichier pour le stockage ou le transfert.
Pourquoi l'outil refuse-t-il de formater mon JSON en indiquant une clé dupliquée?
Contrairement à d'autres outils qui fusionnent ou suppriment silencieusement les valeurs, ce formateur lève une erreur "Clé dupliquée ‹key› — supprimez-en une avant de formater" afin d'éviter toute perte accidentelle de données.
Quels formats de fichiers puis-je ouvrir dans l'éditeur?
Vous pouvez ouvrir des fichiers au format .json ou .txt. Ces fichiers doivent obligatoirement être encodés en UTF-8 et leur taille ne doit pas dépasser la limite de 10 MiB.