18.33Scenario 32 — A DataWeave challenge likely to appear
Input:
{
"customers": [
{
"id": "C001",
"name": " Acme ",
"active": true,
"revenue": "1200000"
},
{
"id": "C002",
"name": "Old Corp",
"active": false,
"revenue": "500000"
}
]
}
Requirement:
Return only active customers; trim company name; convert revenue to number; classify Enterprise over $1M.
Answer:
%dw 2.0
output application/json
---
payload.customers
filter (customer) -> customer.active == true
map (customer) -> {
customerId: customer.id,
name: trim(customer.name),
revenue: customer.revenue as Number,
type:
if ((customer.revenue as Number) > 1000000)
"Enterprise"
else
"Standard"
}
This is worth practicing manually a couple of times.