Utiliser JSONPath pour transformer des données JSON en classeurs

Les classeurs peuvent interroger les données de nombreuses sources. Certains points de terminaison, tels que Azure Resource Manager ou des points de terminaison personnalisés, peuvent retourner des résultats au format JSON. Si les données JSON retournées par le point de terminaison interrogé sont dans un format que vous ne souhaitez pas, vous pouvez utiliser la transformation JSONPath pour convertir le JSON en structure de table. Vous pouvez ensuite utiliser la table pour tracer des visualisations de classeur.

JSONPath est un langage de requête pour JSON qui est similaire à XPath pour XML. Comme XPath, JSONPath permet l’extraction et la filtration de données à partir de la structure JSON.

Utiliser JSONPath

Dans cet exemple, l’objet JSON représente l’inventaire d’un magasin. Nous allons créer une table des livres disponibles dans le magasin listant leurs titres, leurs auteurs et leurs prix.

  1. Commutez le classeur en mode édition en sélectionnant Modifier.

  2. Utilisez le lien Ajouter>Ajouter une requête pour ajouter un contrôle de requête au classeur.

  3. Sélectionnez le type de source de données en tant que JSON.

  4. Utiliser l’éditeur JSON pour entrer l’extrait de code JSON suivant :

    { "store": {
        "books": [ 
          { "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
        }
      }
    }
    
  5. Sélectionnez l’onglet Paramètres du résultat et basculez le format des résultats sur Chemin JSON.

  6. Appliquez les paramètres de chemin d’accès JSON suivants :

    • Table de chemins JSON: $.store.books. Ce champ représente le chemin d’accès de la racine de la table. Dans ce cas, nous nous soucions de l’inventaire des livres du magasin. Le chemin d’accès de la table filtre le fichier JSON avec les informations du livre.

      ID de colonne Chemins JSON de colonne
      Intitulé $.title
      Auteur $.author
      Price $.price

    Les ID de colonne sont les en-têtes de colonnes. Les champs de chemins d’accès de colonne JSON représentent le chemin d’accès entre la racine de la table et la valeur de colonne.

  7. Sélectionnez Run Query (Exécuter la requête).

    Screenshot that shows editing a query item with JSON data source and JSON path result format.

Utiliser des expressions régulières pour convertir des valeurs

Vous pouvez avoir des données qui ne sont pas dans un format standard. Pour utiliser ces données efficacement, vous souhaitez convertir ces données dans un format standard.

Dans cet exemple, la date de publication est au format AAAAMMMDD. Le code interprète cette valeur comme une valeur numérique, et non comme du texte, ce qui aboutit à des nombres justifiés à droite, au lieu d’une date.

Vous pouvez utiliser les champs Type, RegEx Match et Remplacer par dans les paramètres de résultat pour convertir le résultat en véritables dates.

Champ de paramètre de résultat Description
Type Vous permet de modifier explicitement le type de la valeur retournée par l’API. Ce champ n’a généralement pas été défini, mais vous pouvez l’utiliser pour forcer la valeur à un type différent.
Regex Match Vous permet d’entrer une expression régulière pour prendre une partie (ou des parties) de la valeur retournée par l’API au lieu de la valeur entière. Ce champ est généralement combiné avec le champ Remplacer par.
Remplacer par Utilisez ce champ pour créer la nouvelle valeur avec l’expression régulière. Si cette valeur est vide, la valeur par défaut est $&, qui est le résultat de correspondance de l’expression. Consultez la documentation string.replace pour voir les autres valeurs que vous pouvez utiliser pour générer d’autres sorties.

Pour convertir le format AAAAMMJJ au format AAAA-MM-JJ :

  1. Sélectionnez la ligne Publiée dans la grille.

  2. Dans le champ Type, sélectionnez Date/Heure afin que la colonne soit utilisable dans les graphiques.

  3. Dans le champ Correspondance regex, utilisez cette expression régulière : ([0-9]{4})([0-9]{2})([0-9]{2}). Cette expression régulière :

    • correspond à un nombre à quatre chiffres, puis à un nombre à deux chiffres, puis à un autre nombre à deux chiffres.
    • Les groupes de capture de formulaires entre parenthèses à utiliser à l’étape suivante.
  4. Dans Remplacer par, utilisez cette expression régulière : $1-$2-$3. Cette expression crée une nouvelle chaîne avec chaque groupe capturé, avec un trait d’union entre eux, transformant « 12345678 » en « 1234-56-78 »).

  5. Réexécutez la requête.

    Screenshot that shows JSONpath converted to date-time format.

Étapes suivantes