Только поток мулов обрабатывает 1 запись из CSV-файла

У меня есть поток мулов, который идет ФАЙЛ -> ВЫБОР -> DATAMAPPER -> LOGGER

Конечная точка FILE обрабатывает CSV-файл с 40 записями

DATAMAPPER преобразует CSV в JSON и показывает все 40 записей в формате JSON при запуске в режиме предварительного просмотра

LOGGER показывает, что полезная нагрузка в виде байта, а не JSON, и когда я преобразую JSON в объект, он показывает полезную нагрузку в формате JSON, но есть только 1 запись.

Мои запросы: 1. Как настроить рабочий процесс для обработки всех 40 записей, преобразования всех в JSON и вывода всего из потока?

  1. Правильно ли, что выходные данные являются байтами, потому что выходные данные datamapper - JSON, поэтому я ожидал увидеть все записи в формате JSON в полезной нагрузке при просмотре этого в режиме отладки?

1 ответ

Вы можете сделать что-то вроде этого.

<flow name="csv-to-jsonFlow">
        <file:inbound-endpoint path="/src/main/resources/csv" connector-ref="File" responseTimeout="10000" doc:name="File">
            <file:filename-regex-filter pattern=".*csv" caseSensitive="true"/>
        </file:inbound-endpoint>
        <dw:transform-message doc:name="Transform Message">
            <dw:set-payload><![CDATA[%dw 1.0
%output application/json
---
payload]]></dw:set-payload>
        </dw:transform-message>
        <object-to-string-transformer doc:name="Object to String"/>
        <logger message="#[payload]" level="INFO" doc:name="Logger"/>
    </flow>

Образец CSV-файла:

name,age,gender
janos,29,male
juan,40,male
pedro,22,male
carla,34,female
jose,30,male
anne,25,female
rey,33,male
joyce,27,female
pia,20,female
ard,27,male
janos,29,male
juan,40,male
pedro,22,male
carla,34,female
jose,30,male
anne,25,female
rey,33,male
joyce,27,female
pia,20,female
ard,27,male
janos,29,male
juan,40,male
pedro,22,male
carla,34,female
jose,30,male
anne,25,female
rey,33,male
joyce,27,female
pia,20,female
ard,27,male
janos,29,male
juan,40,male
pedro,22,male
carla,34,female
jose,30,male
anne,25,female
rey,33,male
joyce,27,female
pia,20,female
ard,27,male

Пример вывода:

[
  {
    "name": "janos",
    "age": "29",
    "gender": "male"
  },
  {
    "name": "juan",
    "age": "40",
    "gender": "male"
  },
  {
    "name": "pedro",
    "age": "22",
    "gender": "male"
  },
  {
    "name": "carla",
    "age": "34",
    "gender": "female"
  },
  {
    "name": "jose",
    "age": "30",
    "gender": "male"
  },
  {
    "name": "anne",
    "age": "25",
    "gender": "female"
  },
  {
    "name": "rey",
    "age": "33",
    "gender": "male"
  },
  {
    "name": "joyce",
    "age": "27",
    "gender": "female"
  },
  {
    "name": "pia",
    "age": "20",
    "gender": "female"
  },
  {
    "name": "ard",
    "age": "27",
    "gender": "male"
  },
  {
    "name": "janos",
    "age": "29",
    "gender": "male"
  },
  {
    "name": "juan",
    "age": "40",
    "gender": "male"
  },
  {
    "name": "pedro",
    "age": "22",
    "gender": "male"
  },
  {
    "name": "carla",
    "age": "34",
    "gender": "female"
  },
  {
    "name": "jose",
    "age": "30",
    "gender": "male"
  },
  {
    "name": "anne",
    "age": "25",
    "gender": "female"
  },
  {
    "name": "rey",
    "age": "33",
    "gender": "male"
  },
  {
    "name": "joyce",
    "age": "27",
    "gender": "female"
  },
  {
    "name": "pia",
    "age": "20",
    "gender": "female"
  },
  {
    "name": "ard",
    "age": "27",
    "gender": "male"
  },
  {
    "name": "janos",
    "age": "29",
    "gender": "male"
  },
  {
    "name": "juan",
    "age": "40",
    "gender": "male"
  },
  {
    "name": "pedro",
    "age": "22",
    "gender": "male"
  },
  {
    "name": "carla",
    "age": "34",
    "gender": "female"
  },
  {
    "name": "jose",
    "age": "30",
    "gender": "male"
  },
  {
    "name": "anne",
    "age": "25",
    "gender": "female"
  },
  {
    "name": "rey",
    "age": "33",
    "gender": "male"
  },
  {
    "name": "joyce",
    "age": "27",
    "gender": "female"
  },
  {
    "name": "pia",
    "age": "20",
    "gender": "female"
  },
  {
    "name": "ard",
    "age": "27",
    "gender": "male"
  },
  {
    "name": "janos",
    "age": "29",
    "gender": "male"
  },
  {
    "name": "juan",
    "age": "40",
    "gender": "male"
  },
  {
    "name": "pedro",
    "age": "22",
    "gender": "male"
  },
  {
    "name": "carla",
    "age": "34",
    "gender": "female"
  },
  {
    "name": "jose",
    "age": "30",
    "gender": "male"
  },
  {
    "name": "anne",
    "age": "25",
    "gender": "female"
  },
  {
    "name": "rey",
    "age": "33",
    "gender": "male"
  },
  {
    "name": "joyce",
    "age": "27",
    "gender": "female"
  },
  {
    "name": "pia",
    "age": "20",
    "gender": "female"
  },
  {
    "name": "ard",
    "age": "27",
    "gender": "male"
  }
]

Надеюсь это поможет.

Другие вопросы по тегам