Comment lire un document dans cette vue

Le document collé à gauche est analysé pendant la frappe et dessiné à droite sous forme d’arbre coloré : clés, chaînes, nombres, true/false et null ont chacun leur couleur, et chaque objet ou tableau porte un repère qui le replie en Object{…} ou Array[n]. Il n’y a pas de bouton d’exécution : les deux volets restent synchronisés pendant l’édition.

Tout se passe dans l’onglet : le texte est analysé et dessiné par JavaScript dans le navigateur et aucune requête ne le transporte. Un texte qui commence par < et se termine par > est traité comme du XML et converti avant.

  1. Collez ou saisissez du JSON dans le volet de gauche. Le volet de droite est reconstruit à chaque frappe.
  2. Cliquez sur un repère pour replier un objet ou un tableau en Object{…} ou Array[n] ; un second clic rétablit la branche.
  3. Appuyez sur JSON compact pour voir le même document sur une ligne, ou sur Vue XML pour une représentation XML. Le même bouton ramène l’arbre.
  4. Appuyez sur Effacer pour vider les deux volets. Une chaîne qui n’est qu’une adresse http:// ou https:// s’affiche comme lien.
  5. Quand le texte n’est pas analysable, le volet de droite indique la ligne, la position et le jeton attendu, et les boutons JSON compact et Vue XML signalent qu’il n’y a rien à afficher au lieu de montrer le document précédent.

Ce que cette vue fait du document

L’arbre de droite

L’arbre est construit à partir du document analysé, pas du texte : les clés gardent l’ordre du document et les valeurs sont colorées par type. Le repli remplace une branche par son repère, et le repère d’un tableau indique en plus le nombre d’éléments.

Les chaînes qui sont une seule adresse http:// ou https:// sans espace deviennent des liens. Le balisage présent dans une clé ou une chaîne est imprimé comme texte au lieu d’être interprété : un document ne peut donc pas injecter d’éléments dans la page.

Ce que l’analyseur accepte et ce qu’il modifie

L’analyseur est du JSON strict : commentaires, virgules finales, clés entre guillemets simples, NaN et nombres avec un zéro initial sont refusés. Un document refusé est signalé avec le numéro de ligne, un extrait avec un curseur sous la position et le jeton attendu.

Les clés en double gardent la dernière valeur. Les nombres sont lus comme des nombres JavaScript, ce qui se voit aux extrêmes : les chiffres au-delà des 15–16 chiffres significatifs d’un double sont arrondis (12345678901234567890 s’affiche 12345678901234567000), 1e21 s’affiche 1e+21, et une valeur hors du domaine d’un double, comme 1e400, apparaît en Infinity dans l’arbre et en null dans la vue compacte, car cette vue est la sortie de JSON.stringify.

XML en entrée et en sortie

Le XML est converti selon les conventions de l’outil : les attributs deviennent des clés @nom, les éléments frères répétés des tableaux, CDATA du texte, et la déclaration comme les commentaires sont écartés. Un élément qui contient du texte et des éléments enfants garde les enfants et place le texte qui les entoure sous la clé #text.

La vue XML réécrit le document courant en XML. Le texte et les valeurs d’attribut sont échappés, les noms que XML n’accepte pas deviennent valides (un espace ou un chiffre initial devient un souligné) et une clé #text est écrite comme texte, pas comme balise. Le résultat est un texte en lecture seule que vous pouvez sélectionner et copier.

Taille et limites

La page ne fixe aucune limite de taille, mais l’arbre est du balisage réel : un document très volumineux pèse lourd — un échantillon de 1,1 Mo a produit environ 25 Mo de balisage et a demandé près d’une seconde. Quelques milliers de lignes restent fluides : redessiner un document de 300 lignes à chaque frappe a pris 6 à 15 ms dans Chrome après le premier passage.

Rien n’est conservé : un rechargement repart de l’échantillon du volet de gauche, et Effacer vide les deux volets.

Outils récents :