Aller au contenu

Testeur et générateur de JSON Pointer

Collez le document et un pointeur comme /items/0/name. Utilisez le générateur par segments quand les noms contiennent des barres ou des tildes.

Fonctionne localement dans votre navigateur
1Documenter2Pointeur3Valeur résolue

DocumenterRFC6901

Résoudre un JSON Pointer ou le construire à partir de segments

L’outil résout un JSON Pointer RFC 6901 sur un document JSON et affiche la valeur sélectionnée, les segments de chemin décodés et le type de cette valeur. Un pointeur est soit la chaîne vide, qui sélectionne tout le document, soit une suite de segments séparés par des barres obliques : /users/0/name entre dans le tableau users, prend son premier élément et y lit name.

Le générateur par segments travaille dans l’autre sens. Un segment par ligne est réuni en un pointeur échappé : les noms contenant une barre ou un tilde ressortent en ~1 et ~0 au lieu de casser le chemin. Tout s’exécute dans la page, et Copier place la valeur résolue dans le presse-papiers.

  1. Collez le document JSON dans le panneau Document, ou cliquez sur Charger l’exemple pour partir d’un tableau users qui contient déjà une clé avec une barre dans son nom.
  2. Saisissez le pointeur dans le champ Pointer. Il doit être vide ou commencer par une barre oblique ; la forme #/users/0/name est acceptée comme fragment d’URI et décodée avant la lecture des segments.
  3. Cliquez sur Résoudre le pointeur. Le panneau Valeur résolue affiche la valeur choisie — chaînes telles quelles, objets et tableaux mis en forme — et Segments de chemin décodés liste chaque segment avec sa position, ou (document root) pour un pointeur vide.
  4. Lisez les trois mesures au-dessus de la sortie : Segments, Type de valeur et si le pointeur a été résolu. Un pointeur qui sort du document est signalé comme introuvable au lieu de renvoyer une valeur proche.
  5. Pour construire un pointeur, saisissez un segment par ligne dans Segments de chemin puis cliquez sur Construire à partir de segments ; les lignes vides sont écartées et le pointeur échappé revient dans le champ Pointer. Effacer réinitialise les deux panneaux, les segments, les mesures et le message d’état.

Ce que montre chaque panneau et comment les règles du pointeur s’appliquent

Segments, échappements et fragments d’URI

Le pointeur est découpé sur les barres obliques, et la barre initiale ne fait que marquer le début : //empty vise la propriété dont le nom est la chaîne vide, /a~1b la clé a/b. Les deux échappements sont ~1 pour la barre et ~0 pour le tilde ; un tilde suivi d’autre chose, y compris de la fin du pointeur, est refusé par une erreur au lieu d’être lu comme un caractère littéral.

Le champ accepte aussi un fragment d’URI : #/users/0/name et la forme encodée #%2Fusers%2F1%2Fname donnent les mêmes segments, et #/a%20b lit la clé a b. Les espaces autour du pointeur sont retirés avant l’analyse : un espace après /a est donc ignoré.

Tableaux, types de valeur et résultats introuvables

Les positions de tableau suivent RFC 6901 à la lettre : un segment ne compte comme indice que s’il vaut 0 ou une suite de chiffres sans zéro initial. /arr/1 sélectionne le deuxième élément, alors que /arr/01, /arr/- et un indice au-delà de la fin ne sont pas trouvés ; le tiret qui marque la fin d’un tableau dans JSON Patch n’est pas une valeur lisible ici.

Les objets sont comparés par nom de propriété propre exact, donc les clés avec espaces, lettres Unicode ou noms comme __proto__ se résolvent comme les autres — sans joker ni recherche. La valeur s’affiche selon son type : chaînes brutes, nombres et booléens en JSON, null tel quel, objets et tableaux mis en forme, avec Type de valeur et Résolu dans les mesures.

Construire des pointeurs, confidentialité et limites

Construire à partir de segments échappe chaque ligne séparément, réunit les segments avec des barres et remplace ~ par ~0 avant de transformer / en ~1, l’ordre exigé par RFC 6901. Une liste vide produit un pointeur vide qui sélectionne tout le document ; si le panneau du document est vide, l’action écrit seulement le pointeur et indique qu’il vient des segments, sans inventer de valeur.

Les deux directions s’exécutent dans le navigateur : résoudre, construire, l’exemple et Copier n’envoient aucune requête réseau, l’outil fonctionne donc hors ligne et sur des données qui ne doivent pas quitter la machine. Copier reste inactif tant qu’aucune valeur n’est affichée : après un JSON invalide, un mauvais échappement ou un pointeur introuvable, la valeur précédente est effacée et ne peut pas être copiée par erreur.

Outils récents :