filterObject

DataWeave 2.1 is compatible with Mule 4.1. Standard Support for Mule 4.1 ended on November 2, 2020, and this version of Mule will reach its End of Life on November 2, 2022, when Extended Support ends.

Deployments of new applications to CloudHub that use this version of Mule are no longer allowed. Only in-place updates to applications are permitted.

MuleSoft recommends that you upgrade to the latest version of Mule 4 that is in Standard Support so that your applications run with the latest fixes and security enhancements.

filterObject({ (K)?: V }, (value: V, key: K, index: Number) -> Boolean): { (K)?: V }

Filters an object, keeping the key-value pairs that fulfill the criteria.

The criteria (a lambda expression) has three parameters: value, key, and index. You can reference the value with $, the key with $$, and the index with $$$.

Parameters

Name Description

value

The input object.

criteria

The expression that determines whether to retain the key-value pair or not.

Example

This example keeps only the key-value pairs if the value equals "a".

Source

%dw 2.0
output application/json
---
{"letter1": "a", "letter2": "b"} filterObject ((value) -> value == "a")

Output

{
  "letter1": "a"
}

Example

This example only keeps the key-value pairs where the key starts with "letter".

Source

%dw 2.0
output application/json
---
{"letter1": "a", "letter2": "b", "id": 1} filterObject ((value, key) -> key startsWith "letter")

Example

This example outputs an object that contains only the values that are not null in the input JSON object.

Source

%dw 2.0
output application/json
var o = {
    str1 : "String 1",
    str2 : "String 2",
    str3 : null,
    str4 : "String 4",
}
---
o filterObject $ != null

Output

{
  "str1": "String 1",
  "str2": "String 2",
  "str4": "String 4"
}

filterObject(Null, (value: Nothing, key: Nothing, index: Nothing) -> Boolean): Null

Helper function that allows filterObject to work with null values.

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub