write(Any, String, Object): String | Binary

Writes a value as a string or binary in a supported format.

Returns a string or binary with the serialized representation of the value in the specified format (MIME type). This function can write to a different format than the input. Note that the data must validate in that new format, or an error will occur. For example, application/xml content is not valid within an application/json format, but text/plain can be valid.


Name Description


The value to write. The value can be of any supported data type.


A supported format (or MIME type) to write. Default: application/dw.


Optional: Sets writer configuration properties. For writer configuration properties (and other supported MIME types), see Supported Data Formats.


This example writes the string world in plain text (text/plain"). It outputs that string as the value of a JSON object with the key hello.


%dw 2.0
output application/json
{ hello : write("world", "text/plain") }


{ "hello": "world" }


This example takes JSON input and writes the payload to a CSV format that uses a pipe (|) separator and includes the header (matching keys in the JSON objects). Note that if you instead use "header":false in your script, the output will lack the Name|Email|Id|Title header in the output.


%dw 2.0
output application/xml
{ "output" : write(payload, "application/csv", {"header":true, "separator" : "|"}) }


    "Name": "Mr White",
    "Email": "white@mulesoft.com",
    "Id": "1234",
    "Title": "Chief Java Prophet"
    "Name": "Mr Orange",
    "Email": "orange@mulesoft.com",
    "Id": "4567",
    "Title": "Integration Ninja"


<?xml version="1.0" encoding="US-ASCII"?>
Mr White|white@mulesoft.com|1234|Chief Java Prophet
Mr Orange|orange@mulesoft.com|4567|Integration Ninja

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub
Submit your feedback!
Share your thoughts to help us build the best documentation experience for you!
Take our latest survey!