4.1.5. Format de fichier JSON

Tale of Data peut lire en entrée des fichiers JSON (quelque soit le lieu ou le système de stockage souhaité).

Le comportement par défaut est « d’aplatir » les fichiers JSON afin d’obtenir un jeu de données tabulaire. Chacun des chemins JSON contenant une valeur littérale (texte, nombre ou booléen) devient une colonne du jeu de données tabulaire.

Note

chemin JSON

Permet de sélectionner et d’extraire les données d’un document JSON. Un chemin JSON commence au nœud ou à l’élément racine et atteint l’élément requis dans la structure JSON pour en extraire les données. Les éléments d’un chemin JSON sont séparés par le caractère / .

Tale of Data propose trois clés permettant de personnaliser la façon dont un fichier JSON est converti dans un format tabulaire :

  • Clé n°1 : Les chemins JSON inclus (par défaut tous les chemins sont inclus) .

  • Clé n°2 : Les chemins à conserver en JSON.

  • Clé n°3 : Les chemins JSON exclus.

Note

Chacune de ces clés doit contenir une liste de chemins JSON séparés par des sauts de lignes, des virgules ou des points-virgules.

Prenons, par exemple, le fichier JSON suivant :

 1{
 2"responseStatus": "OK",
 3"responseBody": [
 4   {
 5      "name": "John Smith",
 6      "activities": [
 7      "Football",
 8      "Windsurfing"
 9      ]
10   },
11   {
12      "name": "Kathy Johnson",
13      "activities": [
14      "Tennis",
15      "Karate"
16      ]
17   }
18] }

Si aucune clé n’est renseignée le connecteur produit la table suivante :

responseBody_activities

responseBody_name

responseStatus

Football

John Smith

OK

Windsurfing

John Smith

OK

Tennis

Kathy Johnson

OK

Karate

Kathy Johnson

OK

En revanche, si on ne s’intéresse qu’aux données se trouvant sous le chemin responseBody, il suffit de le spécifier dans la configuration du nœud source, dans le champ Chemins JSON inclus. responseBody devient donc un chemin racine à partir duquel les données JSON vont être extraites :

image88

image89

Note

Les chemins peuvent être saisis directement dans le champ ou bien sélectionnés dans une table en cliquant sur le petit bouton à droite du champ. image90

Note

En mode saisie manuelle, vous pouvez utiliser le caractère spécial *. Par exemple, le chemin JSON Persons/Person/T* récupérera tous les éléments JSON dont le chemin commence par Persons, puis Person suivi de n’importe quel champ commençant par “T”.

Astuce

Il est possible de sélectionner plusieurs chemins.

En sélectionnant le chemin responseBody dans le champ Chemins JSON inclus, on obtient le résultat suivant :

responseBody_activities

responseBody_name

Football

John Smith

Windsurfing

John Smith

Tennis

Kathy Johnson

Karate

Kathy Johnson

Supposons que, plutôt que d’obtenir une ligne par activité, on souhaite une ligne par personne. Il convient alors de sélectionner le chemin responseBody/activities dans le champ Chemins à conserver en JSON.

image91

Avec ce paramétrage, la colonne responseBody_activities contient le tableau JSON des activités d’une personne donnée :

responseBody_activities

responseBody_name

[« Football », »Windsurfing »]

John Smith

[« Tennis », »Karate »]

Kathy Johnson

Enfin, la 3e clé : Chemins JSON exclus, permet d’exclure du résultat tous les éléments JSON se trouvant sous les chemins spécifiés.

En mettant le chemin responseBody dans la liste des chemins à exclure, comme ceci :

image92

Toutes les données JSON se trouvant sur un chemin descendant de responseBody sont ignorées. On obtient donc le résultat suivant :

responseStatus

OK