Flex Gateway新着情報
Governance新着情報
Monitoring API Manager1 つのオブジェクトを配列にマップする場合に便利です。pluck
はオブジェクトを反復処理してそのオブジェクトからキー、値、またはインデックスの配列を返します。
これは、配列ではなくオブジェクトを返す
類似の mapObject
の代替となります。
名前 | 説明 |
---|---|
|
マップするオブジェクト。 |
|
指定されたオブジェクトを配列にマップするために使用する |
次の例では、匿名マッパー関数 ((value,key,index) → { (index) : { (value):key} }
) を使用して { "a":"b","c":"d"}
を反復処理し、指定されたオブジェクトの各キー-値ペアを反転し、インデックスをキーとして返します。マッパーは名前付きパラメーターを使用して、オブジェクトのキー、値、インデックスを識別します。{"a":"b","c":"d"} pluck { ($$$) : { ($):$$} }
のように、匿名パラメーターを使用して同じ式を記述することができます。mapObject
を使用するほぼ同じ例とは異なり、pluck
は出力を配列として返します。
%dw 2.0
output application/json
---
{"a":"b","c":"d"} pluck (value,key,index) -> { (index) : { (value):key} }
DataWeave
[ { "0": { "b": "a" } }, { "1": { "d": "c" } } ]
JSON
次の例では pluck
を使用して、<prices/>
内の各要素を反復処理し、キー、値、およびインデックスの配列を返します。匿名パラメーターを使用してこれらをキャプチャします。値を数値に変換するのに as Number
が使用されています。それ以外の場合、文字列として返されます。
%dw 2.0
output application/json
var readXml = read("<prices>
<basic>9.99</basic>
<premium>53.00</premium>
<vip>398.99</vip>
</prices>", "application/xml")
---
"result" : {
"keys" : readXml.prices pluck($$),
"values" : readXml.prices pluck($) as Number,
"indices" : readXml.prices pluck($$$)
}
DataWeave
{
"result": {
"keys": [ "basic", "premium", "vip" ],
"values": [ 9.99, 53, 398.99 ],
"indices": [ 0, 1, 2 ]
}
}
JSON
pluck
を null
値に使用できるようにするヘルパー関数。