-
Notifications
You must be signed in to change notification settings - Fork 9
Composant: Transform
Transforme un objet par mapping grâce à un objet transformation.
Utiliser $.nomDuChamp pour accéder à une donnée de l'objet en entrée
Utiliser = pour effectuer des opérations
Utiliser = {$.nomDuChamp} pour accéder à une donnée de l'objet en entrée dans le cadre d'une opération
Utiliser = {$.nomDuChamp}.nomFonctionJavascript() pour appliquer une fonction
Utiliser = test ? valeurSiVrai : valeurSiFaux pour attribuer une valeur selon une condition
Prenons cette donnée en exemple :
{
"id" : "2",
"fields" :
{
"city" : "Dar es salaam",
"contact" : "biobuutz@gmail.com"
}
}Si l'on souhaite que les champs city et contact soient renommés en "addressLocality" et en "email", il suffit d'appuyer à droite dans le carré bleu, sur "append" deux fois et de rentrer ceci :
{
"id" : "$.id"
"email" : "$.fields.Contact"
"addressLocality" : "$.fields.City"
}Vous noterez que pour accéder à un champs il suffit de faire $.champs.
Et pour accéder à un objet au sein de notre donnée, il suffit de mettre son nom après un signe "$" et de mettre le nom du champs recherché par la suite : $.objet.champs.
Ce qui donnera comme résultat :
{
"id" : "2",
"email" : "biobuutz@gmail.com",
"addressLocality" : "Dar es Salaam"
}Si l'on souhaite mettre le champs adressLocality dans un objet address, il suffit d'appuyer à droite du Bouton Append et de selectionner un objet. On pourra ensuite y ajouter des champs comme on l'a fait précédemment.
{"id" : "$.id"
"email" : "$.fields.Contact"
"address" {
"addressLocality" : "$.fields.City"
}
}donnera donc :
{ "id" : "2",
"email" : "biobuutz@gmail.com",
"address" :{
"addressLocality" : "Dar es Salaam"
}
}On peut également exécuter du code javascript pour évaluer une propriété.
On commencera alors le traitement par = et on mettra le champs entre {}.
C'est la même logique qu'une formule Excel mais dans un objet plutôt qu'une case
Reprenons cette donnée :
{
"id" : "2",
"fields" : {
"city" : "Dar es Salaam",
"contact" : "biobuutz@gmail.com"
}
}Si l'on souhaite que le champs "Dar es Salaam" apparaisse en minuscule, on peut faire :
{
"id" : "$.id",
"email" : "$.fields.Contact",
"addressLocality" : "={$.fields.City}.toLowerCase()"
}On obtiendra :
json { id : "2", fields : { city : "dar es salaam", contact : "biobuutz@gmail.com" } }
- Pour mettre un champs par défaut quand la valeur du champs est vide on peut faire :
email : ={$.fields.Contact} ? {$.fields.Contact} : 'Autre' - Pour vérifier si les valeurs d'un champs contiennent un signe '@' et ne pas renvoyer la valeur si il n'y en a pas :
email : ={$.fields.Contact}.includes('@') ? {$.fields.Contact} : '' - Pour donner une valeur constante au champs on peut faire
email : marshmallow@gmail.comsans mettre le signe $ ! - Pour concatener plusieurs champs :
contact : = {$name} + " " + {$.fields.Contact} + " " + {$.fields.city}
`
en mode évaluation, plusieurs librairies sont disponibles
- dayjs
- he
- Globalize // avec tous les pays préchargés
- path
- cheerio
- removeMarkdown
- lodash
- sanitizeHtml
- les chemins d'accès aux propriétés sont case sensitive
- Conserver les champs de la source: Permet de conserver les anciens champs de la source de données.