型に応じた形式

この 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
})
入力
{
  "VersionNo": 1.6,
  "StoreOfOrigin": "SFO",
  "Item":
    [
      {
        "ID":"34546315801",
        "DeliveryMethod":"AIR",
        "Quantity":8
      },
      {
        "ID":"56722087289",
        "Boxes": 3,
        "DeliveryMethod":"GROUND",
        "Quantity":2
      }
    ]
  }
出力
{
  "versionNo": 1.6,
  "Store Of Origin": "SFO",
  "Items": [
    {
      "ID": "34546315801",
      "DeliveryMethod": "AIR",
      "Quantity": 8
    },
    {
      "ID": "56722087289",
      "Boxes": 3,
      "DeliveryMethod": "GROUND",
      "Quantity": 2
    }
  ]
}

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub