複数の配列要素のグループ化

DataWeave 2.1 は Mule 4.1 と互換性があります。 Mule 4.1 の標準サポートは 2020 年 11 月 2 日に終了しました。このバージョンの Mule は、拡張サポートが終了する 2022 年 11 月 2 日にその​​すべてのサポートが終了Leaving the Siteします。

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

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

この DataWeave の例では、イケアスタイルの家具の部品表を再構成します。入力には、並列処理される 2 つの個別の配列があり、ねじの寸法と数量が含まれます。これらは変換により、「screws」配列がタプル (寸法が含まれるタプルと対応する数量が含まれるタプル) で構成されるように並び替えられます。同じことが木製ボードにも適用されます。入力には、x の寸法と y の寸法が含まれる 2 つの配列があります。変換により、各ボードの一連のタプルに再編成されます。

次の DataWeave 関数を使用します。

  • メイン配列の要素を調べる ​map​。

  • インデックスで複数の 2 要素配列にグループ化されるように、長い配列のペアを再編成する ​zip​。

DataWeave
%dw 2.0
output application/json
---
payload map (item, index) ->
{
    name: item.name,
    id: item.itemID,
    screws: zip(item.screws.size, item.screws.quantity),
    measurements: zip(item.measurements.x,item.measurements.y )
}
dataweave
入力
[
   {
    "name":"wooden-chair",
    "itemID": "23665",
    "screws":{
      "size":[4,6,10],
      "quantity":[15,8,28]
    },
    "measurements":
    {"x":[25,46, 46, 16,150,5, 100, 100, 8],
    "y":[15,4, 4, 80,3, 4, 4, 15]
    }
  },
   {
    "name":"cofee-table",
    "itemID": "14398",
    "screws":{
      "size":[3,8,10],
      "quantity":[8,12,20]
    },
    "measurements":
    {"x":[55, 48, 48, 48, 48, 30, 30, 30, 30],
    "y":[55, 40, 40, 40, 50, 4, 4, 4, 4]
    }
  }
]
json
出力