Skip to content

Composant: Transform

davixim edited this page Nov 12, 2024 · 16 revisions

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

Exemples

Changer le nom des champs

Prenons cette donnée en exemple :

{ 
"id" : "2", 
"fields" :
  {
   "city" : "Dar es salaam",
   "contact" : "[email protected]"
  }
}

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" : "[email protected]",
"addressLocality" : "Dar es Salaam" 
}

Réorganiser la donnée

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" : "[email protected]",
  "address" :{
   "addressLocality" : "Dar es Salaam"
  }
}

Modification de la donnée

On peut également réaliser des traitements sur la donnée, comme lui demander si elle contient bien un signe '@' pour une adresse mail, mettre toutes les valeurs d'un champs en minuscule etc.. On commencera alors le traitement par = et on mettra le champs entre {}.

Reprenons cette donnée :

{
 "id" : "2",
 "fields" : {
  "city" : "Dar es Salaam",
  "contact" : "[email protected]"
 }
}

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 : "[email protected]" } }

  • 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 : [email protected] sans mettre le signe $ !
  • Pour concatener plusieurs champs : contact : = {$name} + " " + {$.fields.Contact} + " " + {$.fields.city} Capture d’écran 2024-11-12 021007 (Petit) `

Mise en garde ⚠️

  • les chemins d'accès aux propriétés sont case sensitive

Paramètres

  • Conserver les champs de la source: Permet de conserver les anciens champs de la source de données.