Selector Modifiers (!, ?)

Selector Modifiers (!, ?)

You can check for the presence of a given key.

  • ! evaluates the selection and fails with an exception message if the key is not present.
  • ? returns true if the selected key is present, false if not. Note that ? is also used in 

Filter Selectors (myKey[?($ == “aValue”)]).

Assert Present Validator

! returns an error if any of the specified key is missing.

  • { “name”: “Annie” }.lastName! returns an error with the message, There is no key named ‘lastName’.
  • Without the !, { “name”: “Annie” }.lastName returns null.
  • When the key is present, { “name”: “Annie” }.name! the result is “Annie”.

Key Present Validator

Returns true if the specified key is present in the object or as an attribute of an XML element.

This example returns true because the name key does exists.

DataWeave Script:

%dw 2.0

output application/xml

present: payload.name?

Input JSON Payload:

{ “name”: “Annie” }

Output XML:

<?xml version=”1.0″ encoding=”UTF-8″?>

<present>true</present>

? also works with XML attributes:

DataWeave Script:

%dw 2.0

output application/json

{

  item: {

    typePresent : payload.product.@.”type”?

  }

}

Input XML Payload:

<product id=”1″ type=”tv”>

  <brand>Samsung</brand>

</product>

Output JSON:

{

  “item”: { “typePresent”: true }

}

Follow Me

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

Instagram

Facebook

Leave a Reply

Your email address will not be published. Required fields are marked *