DataWeave を使用したデータのマップ

この DataWeave の例では、DataWeave ​map​ 関数を使用して、本の配列を反復処理し、それぞれで一連のタスクを実行します。 開始する前に、Mule 4 アプリケーションでは DataWeave のバージョン 2.x が使用されることに注意してください。Mule 3 アプリケーションでの DataWeave については、​『DataWeave バージョン 1.2 の例』​を参照してください。 他の DataWeave バージョンの場合は、DataWeave の目次のバージョンセレクターを使用できます。

この例では、次の DataWeave 関数を使用します。

  • books​ 配列の各オブジェクトを調べる ​map​。

  • 価格データを Number (数値) 型に強制変換する ​as​。これにより、変換で各要素の正しい型が生成されます。

DataWeave スクリプト:
%dw 2.0
output application/json
---
items: payload.books map (item, index) -> {
      book: item mapObject (value, key) -> {
      (upper(key)): value
      }
}
dataweave
入力 JSON ペイロード:
出力 JSON:
本に複数の著者がいる場合、​item.author​ は 1 つの名前ではなく著者の配列全体に評価されます。

デフォルト値の使用

次の例では、上記と同じ変換を実行しますが、プロパティ「item」および「index」を明示的に定義しません。代わりに、それぞれのデフォルト名 (​$​ および ​$$​) でコールします。

DataWeave スクリプト:
%dw 2.0
output application/json
---
items: (payload.books map {
      category: "book",
      price: $.price as Number,
      id: $$,
      properties: {
        title: $.title,
        author: $.author,
        year: $.year as Number
      }
})
dataweave
入力 JSON ペイロード:
出力 JSON: