%dw 2.0
output application/json
---
[{ letter: "e" }, { letter: "d" }] orderBy($.letter)DataWeave
orderBy
orderBy(O, (value: V, key: K) -> R): O
Reorders the elements of an input using criteria that acts on selected elements of that input.
This version of orderBy takes an object as input. Other versions act on an
input array or handle a null value.
Note that you can reference the index with the anonymous parameter
$$ and the value with $.
Parameters
| Name | Description |
|---|---|
|
The object to reorder. |
|
The result of the function is used as the criteria to reorder the object. |
Example
This example alphabetically orders the values of each object in the input
array. Note that orderBy($.letter) produces the same result as
orderBy($[0]).
Source
Output
[
{
"letter": "d"
},
{
"letter": "e"
}
]JSON
Example
The orderBy function does not have an option to order in descending order
instead of ascending. In these cases, you can simply invert the order of
the resulting array using -, for example:
Source
%dw 2.0
output application/json
---
orderDescending: ([3,8,1] orderBy -$)DataWeave
Output
{ "orderDescending": [8,3,1] }JSON
orderBy(Array<T>, (item: T, index: Number) -> R): Array<T>
Sorts an array using the specified criteria.
Parameters
| Name | Description |
|---|---|
|
The array to sort. |
|
The result of the function will be used as the criteria to sort the list. It should return a simple value (String, Number, etc) |
Example
This example sorts an array of numbers based on the numeric values.
Source
%dw 2.0
output application/json
---
[3,2,3] orderBy $DataWeave
Output
[ 2, 3, 3 ]JSON
Example
This example sorts an array of people based on their age.
Source
%dw 2.0
output application/json
---
[{name: "Santiago", age: 42},{name: "Leandro", age: 29}, {name: "Mariano", age: 35}] orderBy (person) -> person.ageDataWeave
Output
[
{
name: "Leandro",
age: 29
},
{
name: "Mariano",
age: 35
},
{
name: "Santiago",
age: 42
}
]JSON
Example
This example changes the order of the objects in a JSON array. The expression first orders them alphabetically by the value of the Type key, then reverses the order based on the [-1 to 0].
Source
%dw 2.0
var myInput = [
{
"AccountNumber": "987999321",
"NameOnAccount": "QA",
"Type": "AAAA",
"CDetail": {
"Status": "Open"
}
},
{
"AccountNumber": "12399978",
"NameOnAccount": "QA",
"Type": "BBBB",
"CDetail": {}
},
{
"AccountNumber": "32199974",
"NameOnAccount": "QA",
"Type": "CCCC",
"CDetail": {}
}
]
output application/json
---
(myInput orderBy $.Type)[-1 to 0]DataWeave
Output
[
{
"AccountNumber": "32199974",
"NameOnAccount": "QA",
"Type": "CCCC",
"CDetail": {
}
},
{
"AccountNumber": "12399978",
"NameOnAccount": "QA",
"Type": "BBBB",
"CDetail": {
}
},
{
"AccountNumber": "987999321",
"NameOnAccount": "QA",
"Type": "AAAA",
"CDetail": {
"Status": "Open"
}
}
]JSON
orderBy(Null, (item: Nothing, index: Nothing) -> Null): Null
Helper function that enables orderBy to work with a null value.



