Accéder au contenu principal Passer au contenu complémentaire

Chemin JSON

Cette section décrit les expressions du chemin JSON que vous pouvez utiliser avec Talend Cloud API Tester.

Pour plus d'informations, consultez l'article JSONPath - XPath pour JSON (en anglais).

Vous trouverez également un évaluateur en ligne de chemin d'accès JSON à l'adresse suivante : JSON Path Online Evaluator (en anglais). L'implémentation sous-jacente peut varier de celle utilisée dans Talend Cloud API Tester, ainsi les résultats peuvent varier.

Voici quelques conseils pour utiliser les payloads JSON :

  • Le dollar $ désigne un objet racine du contenu JSON.
  • Le point . vous permet d'obtenir les attributs d'un objet ou d'aller plus loin dans l'arborescence.
  • Les crochets [] ciblent les tableaux et permet de sélectionner un élément particulier ou une portion de ceux-ci.
  • Les deux points .. vous permettent de réunir de manière récursive tous les attributs selon leur nom.

Comme vous pouvez le voir ci-dessous, l'implémentation actuelle dans Talend Cloud API Tester suit principalement la référence, mais varie sur certains points.

Échantillons d'expressions de chemin d'accès JSON

Cette section liste les expressions et leurs résultats par rapport à l'échantillon de fichier JSON suivant :

{
  "store": {
    "book": [
        {
          "category": "reference",
          "author": "Nigel Rees",
          "title": "Sayings of the Century",
          "price": 8.95
        },
        {
          "category": "fiction",
          "author": "Evelyn Waugh",
          "title": "Sword of Honour",
          "price": 12.99
        },
        {
          "category": "fiction",
          "author": "Herman Melville",
          "title": "Moby Dick",
          "isbn": "0-553-21311-3",
          "price": 8.99
        },
        {
          "category": "fiction",
          "author": "J. R. R. Tolkien",
          "title": "The Lord of the Rings",
          "isbn": "0-395-19395-8",
          "price": 22.99
        }
      ],
      "bicycle": {
        "color": "red",
        "price": 19.95
    }
  }
}

La table suivante présente certains échantillons d'expressions et leurs résultats.

Expression Valeur
$.store.bicycle.color La valeur de l'attribut de la couleur du vélo (par exemple "red")
$.store.book[0] Le premier nœud "book" dans "store"

$.store.book[1:3]

$.store.book[1,2]

Un tableau du deuxième et troisième nœud "book" dans "store"
$.store.book[-1:] Un tableau contenant le dernier nœud "book" dans "store"
$.store.book[:2] Un tableau contenant le premier et le deuxième nœud "book" dans "store"
$.store.book[1:4:2].author Un tableau des auteurs du deuxième et quatrième nœud "book" dans "store" (par exemple ["Evelyn Waugh","J. R. R. Tolkien"])
$.store.book[1].* Un tableau des valeurs de tous les attributs du deuxième livre (par exemple ["fiction","Evelyn Waugh","Sword of Honour",12.99])
$.store..price Un tableau des valeurs de tous les attributs "price" du nœud "store" (par exemple les prix des livres et vélos [8.95,12.99,8.99,22.99,19.95])
$.store.book.author Un tableau des valeurs de tous les attributs "author" du nœud "book" (par exemple ["Nigel Rees","Evelyn Waugh","Herman Melville","J. R. R. Tolkien"])
$.store.book[?(@.isbn)] Un tableau des livres ayant un attribut "isbn" (par exemple les deux derniers livres)
$.store.book[?(@.price<10)] Un tableau des livres dont le prix est inférieur à "10"
$.. Un tableau de tous les nœuds enfants du nœud racine, récursivement
$..category Un tableau de toutes les valeurs des nœuds "category" (par exemple ["reference","fiction","fiction","fiction"])
$..category[(@.length-1)] La valeur du dernier nœud "category"

Lorsque Talend Cloud API Tester est différent de la référence

L'opérateur étoile

Expression Référence Talend Cloud API Tester
$.store.book[*].author Un tableau avec les auteurs de tous les livres du magasin Retourne un tableau vide, utilise $.store.book.author à la place

L'opérateur à deux points

L'expression $..book est interprétée comme un tableau de tous les nœuds book, ainsi elle retourne un tableau contenant un tableau, puisque le nœud book est un tableau :

[
  [
          { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 },
          { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 },
          { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 },
          { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 }
  ]
]

Ensuite, les expressions suivantes sont calculées différemment :

Expression Référence Talend Cloud API Tester
$..book[0] Un tableau contenant le premier nœud book Le premier élément du tableau, c'est-à-dire un tableau contenant tous les livres.
$..book[-1:] Un tableau contenant le dernier livre Non supporté tel quel, fonctionne grâce à ($..book[0][-1:])
$..book[(@.length-1)] Un tableau contenant le dernier livre Non supporté tel quel, fonctionne grâce à ($..book[0][(@.length-1)])
$..book[0,1] Un tableau contenant le premier et deuxième libre Non supporté tel quel, fonctionne grâce à ($..book[0][0,1])
$..book[:2] Un tableau contenant le troisième livre Non supporté tel quel, fonctionne grâce à ($..book[0][:2])

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.