2015-08-25 2 views
2

Я пытаюсь преобразовать список объектов, CSV, используя следующий код в dataweave:Transform список объектов в CSV, используя dataweave

%dw 1.0 
%type company = :object {class: "java.util.ArrayList"} 
%input payload application/java 
%output application/csv 
--- 
{ 
    name: payload.name, 
    address: payload.address 
} as :company 

Ниже будет вывод, что я получаю, когда я выполнить вышеуказанные данные ткать код.

name,name 
testName,testName2 
testAddress,testAddress2 

в то время как я ожидал следующее: (пример данных)

name,address 
testName,testAddress 
testName2,testAddress2 

Помоги мне понять, к чему я упускаю в компоненте переплетения данных

ответ

5

В общих чертах, при использовании DataWeave вы охарактеризовали свой вывод, используя каноническое представление, которое более или менее супер-набор другие форматы данных.

Для генерации вывода CSV необходимо создать массив объектов.
Каждый из этих объектов представляет собой строку CSV.
Объекты в DataWeave представляют собой наборы пар ключ-значение

отображение должно быть что-то вроде:

%dw 1.0 
%output application/csv 
--- 
payload map { 
    name: $.name, 
    address: $.address 
} 

map операция здесь создает объект с name и address для каждой записи в списке. $ представляет собой неявную переменную при итерации (каждая запись списка).

Примечание: Директива %input payload application/java не требуется, так как тип содержимого для вашего ввода (JSON, XML, CSV и т. Д.) Берется из сообщения мула, когда он установлен, и по умолчанию он имеет значение java, если его нет.

1

следующие работы для меня:

ВХОД:

%dw 1.0 
%output application/java 
--- 
[{ 
    name: "nameInput", 
    address: "addressInput" 
}] 

КАРТ:

%dw 1.0 %output application/csv 
--- 
payload 

ВЫВОД:

name,address 
nameInput,addressInput 
+0

Спасибо :) Несмотря на то, что это работает не то, что я хочу. Я хочу указать поля, которые я хочу в отображении. – clare

0

Разветвитель с XPath как оценщик должен сделать трюк ... как:

<splitter evaluator="xpath" expression="/document/article"/> 
Смежные вопросы