Немного очищая его:
%dw 1.0
%output application/xml
---
WorldDetails: {
(payload map {
EachDetail: {
countrycode: $.CountryCode,
district: $.District,
id: $.ID,
Name: $.Name,
population: $.Population
}
})
}
Они, как я думаю об этом:
Скобки ()
используются для вычисления выражения, передачи аргументов функциям или изменения порядок операций.
Скобки {}
используются для определения объектов.
Если вы удалите скобки, это будет выглядеть так:
WorldDetails: payload map {
EachDetail: {
countrycode: $.CountryCode,
district: $.District,
id: $.ID,
Name: $.Name,
population: $.Population
}
}
Вы получите ошибка Cannot coerce a :array to a :object
, потому что ваша карта возвращает массив, а не объект. Таким образом, вы оцениваете карту и превращаете ее в объект с {}
. Если вы хотите, чтобы ваша карта специально возвращала массив, вы можете использовать payload map ()
.
Я уверен, что будет лучший ответ, и тогда я смогу удалить свой пост. Это то, как я их понимаю.