Flex Gateway新着情報
Governance新着情報
Monitoring API Manager配列を反復処理し、一致する値を返す式を適用します。
式は true
または false
を返す必要があります。配列の値またはインデックスに対して式が true
を返した場合、その値は出力配列に取得されます。
配列の値またはインデックスに対して式が false
を返した場合、その項目は出力から除外されます。一致する値がない場合、出力配列は空になります。
名前 | 説明 |
---|---|
|
絞り込む配列。 |
|
|
次の例では、配列内で 2
より大きい値の配列を返します。
[9,2,3,4,5] filter (value, index) -> (value > 2)
DataWeave
[9,3,4,5]
JSON
次の例では、年齢が 30 歳以上のすべてのユーザーの配列を返します。 このスクリプトでは、ラムダ式内の各要素のデータにアクセスします。
%dw 2.0
---
[{name: "Mariano", age: 37}, {name: "Shoki", age: 30}, {name: "Tomo", age: 25}, {name: "Ana", age: 29}]
filter ((value, index) -> value.age >= 30)
DataWeave
[
{
"name": "Mariano",
"age": 37
},
{
"name": "Shoki",
"age": 30
}
]
JSON
次の例では、1
より大きいインデックス ($$
) で検出された、値が 5
未満のすべての項目の配列を返します。これは、匿名関数で名前付きパラメーターを使用するのではなく、匿名パラメーターをセレクターとして使用しています。
%dw 2.0
output application/json
---
[9, 2, 3, 4, 5] filter (($$ > 1) and ($ < 5))
DataWeave
[3,4]
JSON
この例では、user
キーと error
キーを使用するオブジェクトを含む JSON 配列を読み取り、filter
関数を使用して、error
キーの値が null
のオブジェクトのみを返します。
%dw 2.0
output application/json
var users = [
{
"user": {
"name": "123",
"lastName": "Smith"
},
"error": "That name doesn't exists"
},
{
"user": {
"name": "John",
"lastName": "Johnson"
},
"error": null
}
]
---
users filter ((item, index) -> item.error == null)
DataWeave
[
{
"user": {
"name": "John",
"lastName": "Johnson"
},
"error": null
}
]
JSON
次の例では、JSON 配列を読み取り、filter
関数を使用して有効な電話番号を抽出します。
{
"Id": "1184001100000000517",
"marketCode": "US",
"languageCode": "en-US",
"profile": {
"base": {
"username": "TheMule",
"activeInd": "R",
"phone": [
{
"activeInd": "Y",
"type": "mobile",
"primaryInd": "Y",
"number": "230678123"
},
{
"activeInd": "N",
"type": "mobile",
"primaryInd": "N",
"number": ""
},
{
"activeInd": "Y",
"type": "mobile",
"primaryInd": "Y",
"number": "154896523"
}
]
}
}
}
JSON
%dw 2.0
output application/json
---
{
id: payload.Id,
markCode: payload.marketCode,
languageCode: payload.languageCode,
username: payload.profile.base.username,
phoneNumber: (payload.profile.base.phone filter ($.activeInd == "Y" and $.primaryInd== "Y")).number default []
}
DataWeave
{
"id": "1184001100000000517",
"markCode": "US",
"languageCode": "en-US",
"username": "TheMule",
"phoneNumber": [
"230678123"
"154896523"
]
}
JSON
文字列を反復処理し、一致する値を返す式を適用します。
式は true
または false
を返す必要があります。配列の文字またはインデックスに対して式が true
を返した場合、その文字は出力文字列に取得されます。
配列の文字またはインデックスに対して式が false
を返した場合、その文字は出力から除外されます。一致する値がない場合、出力文字列は空になります。
名前 | 説明 |
---|---|
|
絞り込むテキスト。 |
|
使用する条件。 |
次の例では、filter
を使用して偶数番目にあるすべての文字を削除する方法を示しています。
%dw 2.0
output application/json
---
"hello world" filter ($$ mod 2) == 0
DataWeave
"hlowrd"
Json
filter
を null
値に使用できるようにするヘルパー関数。