Categories: Dataweave

MIME TYPES in DataWeave 2.0

DataWeave can read and write many types of data formats, such as JSON, XML, CSV, XSLS and many others. Before you begin, note that DataWeave version 2 is for Mule 4 apps.

DataWeave supports the following formats as input and output:

application/avroavroAvro Format
application/csvcsvCSV Format
application/dwdwDataWeave Format (dw) for testing a DataWeave expression
application/flatfileflatfileFlat File Format, COBOL Copybook Format, Fixed Width Format
application/javajavaJava Format, Enum Format for Java
application/jsonjsonJSON Format
application/octet-streambinaryBinary Format
application/xlsxexcelExcel Format
application/xmlxmlXML Format, CData Custom Type
application/x-ndjsonndjsonNewline Delimited JSON Format (ndjson)
application/x-www-form-urlencodedurlencodedURL Encoded Format
application/yamlyamlYAML Format
multipart/form-datamultipartMultipart Format
text/plaintextText Plain Format
text/x-java-propertiespropertiesText Java Properties

Note: Since DataWeave 2.3, MIME types can be specified with simple IDs such as json or xml. We will work with this syntax throughout this tutorial.

DataWeave Memory Management

DataWeave can read input data as a whole in-memory, in indexed fashion, and for some data formats, part-by-part by streaming the input.

When attempting to read a large file, it is possible to run out of memory or to impact performance negatively. Streaming can improve performance but impacts access to file.

Indexed and In-Memory:

Allow for random access to data because both strategies parse the entire document. When using these strategies, a DataWeave script can access any part of the resulting value at any time.

  • Indexed: Uses indexes over the disk. DataWeave can only read the following formats in the indexed mode: CSV, JSON, XML (starting in Mule 4.3.0)

    Note that DataWeave does not support reading Excel (XLSX) input in the indexed mode.
  • In-Memory: Parses the entire document in memory.


    DataWeave can read all supported formats using the in-memory mode.
  • Streaming: Allows for sequential access to the file. This strategy partitions the input document into smaller items and accesses its data sequentially, storing the current item in memory. A DataWeave selector can access the portion of the file that is getting read.

DataWeave supports streaming only for the following formats:

CSV, JSON, Excel (XLSX, starting in Mule 4.2.2), XML (starting in Mule 4.3.0)

Follow Me

If you like my post please follow me to read my latest post on programming and technology.

Instagram

Facebook

Recent Posts

Select a Random Element from a Stream

You are given a stream of elements that is too large to fit into memory.…

2 days ago

Estimate π Using Monte Carlo Method

The formula for the area of a circle is given by πr². Use the Monte…

3 weeks ago

Longest Substring with K Distinct Characters

Given an integer k and a string s, write a function to determine the length…

3 weeks ago

Staircase Climbing Ways

There is a staircase with N steps, and you can ascend either 1 step or…

4 weeks ago

Autocomplete System Implementation

Build an autocomplete system that, given a query string s and a set of possible…

4 weeks ago

Job Scheduler Implementation

Design a job scheduler that accepts a function f and an integer n. The scheduler…

4 weeks ago