Ir al contenido
ESP

Selector simple

Dado el siguiente payload de entrada:

{
"id": 1,
"firstName": "Emily",
"lastName": "Johnson",
"maidenName": "Smith",
"age": 29,
"gender": "female",
"email": "emily.johnson@x.dummyjson.com",
"phone": "+81 965-431-3024",
"username": "emilys",
"password": "emilyspass",
"birthDate": "1996-5-30",
"bloodGroup": "O-",
"height": 193.24,
"weight": 63.16,
"eyeColor": "Green",
"hair": {
"color": "Brown",
"type": "Curly"
},
"address": {
"address": "626 Main Street",
"city": "Phoenix",
"state": "Mississippi",
"stateCode": "MS",
"postalCode": "29112",
"coordinates": {
"lat": -77.16213,
"lng": -92.084824
},
"country": "United States"
}
}

Escribí una transformación DataWeave que produzca la siguiente salida:

{
"id": 1,
"name": "Emily Johnson",
"age": 29,
"address": "626 Main Street"
}
  • Usá el selector simple (.) para acceder a un valor de una clave del payload.
  • Recordá que podés anidar selectores si la respuesta retornada lo permite: payload.clave.otraClave.
  • El nombre es una concatenación de firstName y lastName.

🔒🔓Ver solución
%dw 2.0
output application/json
---
{
id: payload.id,
name: payload.firstName ++ " " ++ payload.lastName,
age: payload.age,
address: payload.address.address
}

Notas:

  1. La función de ++ permite anidar valores (en este caso String) lo que nos permite anidar firstName y lastName.
  2. La propiedad address dentro del payload es un objeto, por ende podemos volver a utilizar el selector simple para obtener un valor dentro del mismo (en este caso, se repite nuevamente la clave address).
{Code mat;}

Aprendé MuleSoft: cursos, ejercicios y exámenes. Gratis y sin registro.