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

Select a Random Element from a Stream

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

2 days ago

Estimate π Using Monte Carlo Method

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

3 weeks ago

Longest Substring with K Distinct Characters

Given an integer k and a string s, write a function to determine the length…

3 weeks ago

Staircase Climbing Ways

There is a staircase with N steps, and you can ascend either 1 step or…

4 weeks ago

Autocomplete System Implementation

Build an autocomplete system that, given a query string s and a set of possible…

4 weeks ago

Job Scheduler Implementation

Design a job scheduler that accepts a function f and an integer n. The scheduler…

4 weeks ago