Flex Gateway新着情報
Governance新着情報
Monitoring API Manager指定された条件 (式や一致セレクターなど) に基づいて配列の項目をグループ化するオブジェクトを返します。
このバージョンの groupBy
は、criteria
関数を使用して配列の要素をグループ化します。その他のバージョンは、オブジェクトで動作し、null 値を処理します。
次の例では、入力配列 ["a","b","c"]
の項目をインデックスでグループ化します。数値インデックスが文字列として返され、配列の項目 (または値) が配列 (この場合はそれぞれに 1 つの項目を含む) として返されます。配列の項目は、名前付きパラメーター (item
および index
) を使用する匿名関数 (item, index) → index
に基づいてグループ化されます。
["a","b","c"] groupBy $$
のように、匿名パラメーター $$
を使用して同じ結果を生成し、配列のインデックスを特定できます。
次の例では、言語項目に基づいて配列の要素をグループ化します。
グループ化条件を指定するために item.language
セレクターが使用されています。このため、結果のオブジェクトでは、入力からの「language」値 ("Scala"
と "Java"
) を使用して出力をグループ化します。また、出力の配列には各入力オブジェクトが配置されています。
次の例では、groupBy "myLabels"
を使用して、"mylabels"
をキーとして、選択された値の配列 (["Open New", "Zoom In", "Zoom Out", "Original View" ]
) を値とするオブジェクトを返します。配列の作成にはセレクター (myVar.menu.items.*label
) が使用されています。このセレクターは、"label"
をキーとするすべての値を保持しますが、"id"
をキーとする値を除外します。
%dw 2.0
var myVar = { menu: {
header: "Move Items",
items: [
{"id": "internal"},
{"id": "left", "label": "Move Left"},
{"id": "right", "label": "Move Right"},
{"id": "up", "label": "Move Up"},
{"id": "down", "label": "Move Down"}
]
}}
output application/json
---
(myVar.menu.items.*label groupBy "myLabels")
入力内の要素を反復処理するために groupBy
で使用する条件に基づいて、オブジェクトの要素をグループ化します。
名前 | 説明 |
---|---|
|
グループ化するオブジェクトを含むオブジェクト。 |
|
グループ化に使用するオブジェクトの |
次の例では、入力オブジェクト内の各キーの値の代わりに匿名パラメーター $
を使用して、オブジェクトの配列内のオブジェクトをグループ化します。この値には DataWeave upper
関数が適用されます。出力では、この値は大文字のキーになります。{ "a" : "b", "c" : "d"} groupBy (value) → upper(value)
にように、匿名関数の代わりに名前付きパラメーターを使用して、同じ例を記述することもできます。
次の例では、groupBy "costs"
を使用して XML オブジェクトから JSON オブジェクトを生成します。JSON オブジェクトでは、"costs"
がキーになり、XML 要素 prices
の選択された値が JSON 値 ({ "price": "9.99", "price": "10.99" }
) になります。