型に応じた形式

この DataWeave の例では、対応する値の型に応じてオブジェクトのキーに変更を適用します。要素が配列の場合、キーは複数化されます。数値の場合、キャメルケースに設定されます。その他の場合、大文字になります。

開始する前に、Mule 4 アプリケーションでは DataWeave のバージョン 2.x が使用されることに注意してください。Mule 3 アプリケーションでの DataWeave については、​DataWeave バージョン 1.2 の例​を参照してください。 他の DataWeave バージョンの場合は、DataWeave の目次のバージョンセレクターを使用できます。

この例では、以下を使用します。

  • ペイロードの各要素を調べる ​mapObject​。

  • 要素が特定の型かどうかをチェックする ​if​。

  • キャメルケース形式 (すべての単語が結合され、大文字を使用して区切りを表す) を文字列に適用する文字列ライブラリの ​camelize​。

  • 大文字形式 (すべての単語が分離され、大文字で始まる) を文字列に適用する文字列ライブラリの ​capitalize​。

  • 単数形の単語を複数形に変更する文字列ライブラリの ​pluralize​。

DataWeave スクリプト:
%dw 2.0
import * from dw::core::Strings
output application/json
---
payload mapObject ((elementValue, elementKey) -> {
  (if (elementValue is Array)
      pluralize(elementKey)
    else if(elementValue is Number)
      camelize(elementKey)
    else capitalize(elementKey)) : elementValue
})
入力 JSON ペイロード:
{
  "VersionNo": 1.6,
  "StoreOfOrigin": "SFO",
  "Item":
    [
      {
        "ID":"34546315801",
        "DeliveryMethod":"AIR",
        "Quantity":8
      },
      {
        "ID":"56722087289",
        "Boxes": 3,
        "DeliveryMethod":"GROUND",
        "Quantity":2
      }
    ]
  }
出力 JSON:
{
  "versionNo": 1.6,
  "Store Of Origin": "SFO",
  "Items": [
    {
      "ID": "34546315801",
      "DeliveryMethod": "AIR",
      "Quantity": 8
    },
    {
      "ID": "56722087289",
      "Boxes": 3,
      "DeliveryMethod": "GROUND",
      "Quantity": 2
    }
  ]
}