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 :
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.
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.
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 :
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 |