Nav

Example: Outputting a Field When Present

This example outputs a field if it is present in the input, a JSON array. The first object in the array contains "insurance", while the second does not. The XML output mirrors this structure.

The example uses these functions:

  • map to go through every element within the input array.

  • if($.insurance?) to determine when to output an insurance field.

DataWeave

         
      
1
2
3
4
5
6
7
8
9
%dw 2.0
output application/xml
---
users: { (payload map
        user: {
          name: $.name,
          (insurance: $.insurance) if($.insurance?)
        } )
}
Input JSON

         
      
1
2
3
4
5
6
7
8
9
10
11
12
13
[
  {
    "name" : "Julian",
    "gender" : "Male",
    "age" : 41,
    "insurance": "Osde"
  },
  {
    "name" : "Mariano",
    "gender" : "Male",
    "age" : 33
  }
]
Output XML

         
      
1
2
3
4
5
6
7
8
9
10
<?xml version='1.0' encoding='US-ASCII'?>
<users>
  <user>
    <name>Julian</name>
    <insurance>Osde</insurance>
  </user>
  <user>
    <name>Mariano</name>
  </user>
</users>

In this topic: