mapObject

DataWeave 2.2 は Mule 4.2 と互換性があり、Mule 4.2 にバンドルされています。 このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポート​が終了しました。

このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。

標準サポートが適用されている最新バージョンの Mule 4 にアップグレード​することをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。

mapObject(​{ (K)?: V }, (value: V, key: K, index: Number) -> Object): Object

オブジェクトのキー、値、またはインデックスで動作するマッパーを使用して、オブジェクトを反復処理します。

パラメーター

名前 説明

object

マップするオブジェクト。

mapper

指定されたオブジェクトを出力オブジェクトにマップするために使用する ​key​、​value​、または ​index​ を提供する式またはセレクター。

次の例では、入力の ​{ "a":"b","c":"d"}​ を反復処理し、匿名マッパー関数 (​(value,key,index) → { (index) : { (value):key} }​) を使用して、指定された各オブジェクトのキーと値を反転し、オブジェクトのインデックスをキーとして返します。マッパーは名前付きパラメーターを使用して、入力オブジェクトのキー、値、インデックスを識別します。​{"a":"b","c":"d"} mapObject { ($$$) : { ($):$$} }​ のように、匿名パラメーターを使用して同じ式を記述することができます。

ソース

%dw 2.0
output application/json
---
{"a":"b","c":"d"} mapObject (value,key,index) -> { (index) : { (value):key} }

出力

{ "0": { "b": "a" }, "1": { "d": "c" } }

次の例では、各価格に 5 を加え、常に小数点以下 2 桁が表示されるように数値に書式を設定します。

ソース

%dw 2.0
output application/xml
---
{
    prices: payload.prices mapObject (value, key) -> {
        (key): (value + 5) as Number {format: "##.00"}
    }
}

入力

<?xml version='1.0' encoding='UTF-8'?>
<prices>
    <basic>9.99</basic>
    <premium>53</premium>
    <vip>398.99</vip>
</prices>

出力

<?xml version='1.0' encoding='UTF-8'?>
<prices>
  <basic>14.99</basic>
  <premium>58.00</premium>
  <vip>403.99</vip>
</prices>

mapObject(Null, (value: Nothing, key: Nothing, index: Number) -> Nothing): Null

mapObject​ を null 値に使用できるようにするヘルパー関数。

前述の例を使用して、​mapObject​ の入力が ​null​ の場合に出力結果も ​null​ であることをテストできます。XML では、​null​ 値は空のタグとして記述されます。この値は、ライタープロパティ ​writeNilOnNull=true​ を使用して変更できます。

入力

<?xml version='1.0' encoding='UTF-8'?>
<prices>
</prices>

出力

<?xml version='1.0' encoding='UTF-8'?>
<prices>
</prices>