0
votes

I have a mule flow which goes FILE -> CHOICE -> DATAMAPPER -> LOGGER

The FILE endpoint processes a csv file with 40 records

The DATAMAPPER converts the csv into JSON and shows all 40 records in JSON format when run in preview

The LOGGER shows that the payload as a byte and not JSON and when I convert JSON to object it shows the payload in JSON format but there is only 1 record.

My queries: 1. How do you setup the workflow to process all of the 40 records and convert all to JSON and output all from the flow?

  1. Is it correct that the output is a byte because the datamapper output is JSON so I was expecting to see all records in JSON format in the payload when looking at it in debug mode?
1
Can you provide the XML for the flow to get more context?CountD
what is the purpose of your choice?Arden Vallente

1 Answers

0
votes

You can do something like this.

<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>

Sample CSV file:

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

Sample Output:

[
  {
    "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"
  }
]

Hope this helps.