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

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

myKey[?($ == “aValue”)] returns only the values of matching keys within an array or object. Note that ? is also used in Key Present Validator. If no key-value pairs match, the result is null.

The following example inputs the array of name keys returned by *.name, then checks for name keys with the value “Mariano”. It filters out any values that do not match. Note that the $ references the value of the selected key.

DataWeave Script:

%dw 2.0

output application/json

{ users: payload.users.*name[?($ == “Mariano”)] }

Input XML Payload:

<users>

<name>Mariano</name>

<name>Luis</name>

<name>Mariano</name>

</users>

Output JSON:

{

“users”: [

“Mariano”,

“Mariano”

]

}

The following example assumes the same input and returns all the key-value pairs of the input because the expression ( 1 == 1 ) is true. Note that a false expression, such as ( 1 == 2 ), returns null.

DataWeave Script:

%dw 2.0

output application/json

{ users: payload.users.*name[?( 1 == 1)] }

Input XML Payload:

<users>

<name>Mariano</name>

<name>Luis</name>

<name>Mariano</name>

</users>

Output JSON:

{

“users”: [

“Mariano”,

“Luis”,

“Mariano”

]

}

The following example assumes the same input. It uses mapObject to iterate over the entire input object and return matching key-value pairs, filtering out any pairs that do not match.

DataWeave Script:

%dw 2.0

output application/json

payload mapObject { ($$) : $[?($==”Mariano”)] }

Input XML Payload:

<users>

<name>Mariano</name>

<name>Luis</name>

<name>Mariano</name>

</users>

Output JSON:

{

“users”: {

“name”: “Mariano”,

“name”: “Mariano”

}

}

Follow Me

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

Instagram

Facebook

Recent Posts

Generate Parenthesis | Intuition + Code | Recursion Tree | Backtracking | Java

Problem Statement: Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. Example…

3 months ago

Square Root of Integer

Given an integer A. Compute and return the square root of A. If A is…

1 year ago

Build Array From Permutation

Given a zero-based permutation nums (0-indexed), build an array ans of the same length where…

1 year ago

DSA: Heap

A heap is a specialized tree-based data structure that satisfies the heap property. It is…

2 years ago

DSA: Trie

What is a Trie in DSA? A trie, often known as a prefix tree, is…

2 years ago

Trees: Lowest Common Ancestor

What is the Lowest Common Ancestor? In a tree, the lowest common ancestor (LCA) of…

2 years ago