%dw 2.0
output application/json
---
{
  "userId": payload.id default "0000",
  "userName": payload.name default "Undefined"
}Set Default Values with DataWeave
Use one of the following methods to set default values when a payload value is absent or when the value is null:
- 
Using the defaultkeyword
- 
Setting the default in an if-elseorelse-ifstatement
- 
Using elsewhen pattern matching
Example of Using the Keyword default to Set a Default Value
Consider an application that expects a JSON input with fields id and name to do a transformation.
You can configure default values for these fields in case the fields are not present, or their value is null. For example:
If the application receives a JSON message with values set for the id and name fields, then the DataWeave  transformation matches field id to userId and field name to userName.
{
  "id": "123",
  "name": "Max the Mule"
}{
  "userId": "123",
  "userName": "Max the Mule"
}However, if the application receives a JSON message without the expected fields, or the fields have null values, then the transformation uses the configured default values for fields userId and userName.
{
  "id": null
}{
  "userId": "0000",
  "userName": "Undefined"
}Example of Using if-else and else-if Statements to Set Default Values
The following example sets United States as the default value for userLocation if it is not present, or its value is null, in the JSON input message:
%dw 2.0
output application/json
---
if (payload.location != null) {
	"userLocation" : payload.location
} else {
	"userLocation" : "United States"
}If the application receives a JSON message with a value set for the location field, then the DataWeave transformation matches field location to userLocation.
{
  "location": "Argentina"
}{
  "userLocation": "Argentina"
}However, if the application receives a JSON message without the expected field, or the field is null, then the transformation uses the configured default value for field userLocation.
{}{
  "userLocation": "United States"
}Example of Using Matching Patterns to Set Default Values
In pattern-matching scripts, DataWeave
case statements end with an else expression that can serve as the default
to return if all preceding case expressions return false.
%dw 2.0
var myVar = "someString"
output application/json
---
myVar match {
    case myVarOne if (myVar == "some") -> ("some" ++ "is myVar")
    case myVarOne if (myVar == "strings") -> ("strings" ++ "is myVar")
    else -> myVar ++ " is myVar"
}"someString is myVar"


