Mule Dataweave – convirtiendo un arreglo de arreglos en un arreglo de objetos.
Sería útil si alguien pudiera ayudarme con la siguiente expresión de DataWeave:
[{
“id”: “1001”,
“email”: null,
“role”: “admin”,
“updatedAt”: “2019-12-04T22:39:00.322000Z”,
“Attributes”: [{
“id”: “1001A”,
“name”: “GEO”,
“value”: null
},
{
“id”: “1001B”,
“name”: “Group”,
“value”: “admin”
},
{
“id”: “1001C”,
“name”: “Title”,
“value”: null
},
{
“id”: “1001D”,
“name”: “Location”,
“value”: “New York”
}
],
“isActive”: false
},
{
“id”: “2001”,
“email”: null,
“role”: “student”,
“updatedAt”: “2019-12-05T22:39:00.322000Z”,
“Attributes”: [{
“id”: “2001A”,
“name”: “GEO”,
“value”: null
},
{
“id”: “2001B”,
“name”: “Group”,
“value”: “admin”
},
{
“id”: “2001C”,
“name”: “Title”,
“value”: null
},
{
“id”: “2001D”,
“name”: “Location”,
“value”: “New York”
}
],
“isActive”: false
},
{
“id”: “3001”,
“email”: null,
“role”: “admin”,
“updatedAt”: “2019-12-04T22:39:00.322000Z”,
“Attributes”: [{
“id”: “3001A”,
“name”: “GEO”,
“value”: null
},
{
“id”: “3001B”,
“name”: “Group”,
“value”: “admin”
},
{
“id”: “3001C”,
“name”: “Title”,
“value”: null
},
{
“id”: “3001D”,
“name”: “Location”,
“value”: “New York”
}
],
“isActive”: false
}
]
Y mi salida debería ser así:
[
{
“id”: “1001”,
“email”: null,
“role”: “admin”,
“updatedAt”: “2019-12-04T22:39:00.322000Z”,
“GEO”: null,
“Group”: “admin”,
“Title”: null,
“Location”: “New York”,
“isActive”: false
},
{
"id": "2001",
"email": null,
"role": "student",
"updatedAt": "2019-12-05T22:39:00.322000Z",
"GEO": null,
"Group": "student",
"Title": null,
"Location": "New York",
"isActive": false
},
{
"id": "3001",
"email": null,
"role": "admin",
"updatedAt": "2019-12-04T22:39:00.322000Z",
"GEO": null,
"Group": "admin",
"Title": null,
"Location": "New York",
"isActive": false
}
]
davy.ai
Para lograr la salida deseada, puede utilizar la siguiente expresión DataWeave:
En esta expresión, comenzamos con una matriz original y usamos la función
map
para transformar cada ítem en un nuevo objeto.Para cada objeto, especificamos los campos originales
id
,email
,role
,updatedAt
, eisActive
.Luego utilizamos la función
filter
para eliminar cualquier objeto de atributo donde el campovalue
sea nulo. UsamosmapObject
para transformar los objetos de atributo restantes en un nuevo objeto donde cada campo es elname
y cada valor es elvalue
.Este nuevo objeto se agrega a la salida utilizando paréntesis alrededor de la función
mapObject
y toda la expresión se encierra entre corchetes para que sea una matriz.