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

Recent Posts

Find Intersection of Two Singly Linked Lists

You are given two singly linked lists that intersect at some node. Your task is…

4 months ago

Minimum Cost to Paint Houses with K Colors

A builder plans to construct N houses in a row, where each house can be…

4 months ago

Longest Absolute Path in File System Representation

Find the length of the longest absolute path to a file within the abstracted file…

4 months ago

Efficient Order Log Storage

You manage an e-commerce website and need to keep track of the last N order…

5 months ago

Select a Random Element from a Stream

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

5 months ago

Estimate π Using Monte Carlo Method

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

5 months ago