DataWeave を使用した型の強制

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

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

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

DataWeave では、​as​ 演算子を使用して、型を別の型に強制的に変換できます。型強制は実行時に適用されます。

期待される型に一致しないプロパティを演算子に提供した場合、DataWeave は、自動的に、提供されたプロパティを必須の型に強制的に変換しようとします。

型強制のための DataWeave 型の定義

この DataWeave 例では、​String​ 型を使用して型 ​Currency​ を定義し、Java DecimalFormat パターン (​##​) を使用して値を書式設定し、​as​ を使用して ​price​ 値を ​Currency​ 型に強制的に変換します。

入力
<items>
    <item>
        <price>22.30</price>
    </item>
    <item>
        <price>20.31</price>
    </item>
</items>
DataWeave
%dw 2.0
output application/json
type Currency = String { format: "\$#,###.00"}
---
books: payload.items.*item map
    book:
        price: $.price as Currency
出力
{
  "books": [
    {
      "book": {
        "price": "22.30"
      }
    },
    {
      "book": {
        "price": "20.31"
      }
    }
  ]
}

型強制表

次の表は、可能な組み合わせと、変換で使用するスキーマからのプロパティを示しています。

変換元 変換先 プロパティ

Range

Array

Number

Binary

String

Binary

String

Boolean

Number

DateTime

unit

LocalDateTime

DateTime

String

DateTime

format​ / ​locale

DateTime

LocalDate

LocalDateTime

LocalDate

String

LocalDate

format​ / ​locale

DateTime

LocalDateTime

String

LocalDateTime

format​ / ​locale

DateTime

LocalTime

LocalDateTime

LocalTime

Time

LocalTime

String

LocalTime

format​ / ​locale

DateTime

Number

unit

String

Number

format​ / ​locale

String

Period

String

Regex

DateTime

String

format​ / ​locale

LocalDateTime

String

format​ / ​locale

LocalTime

String

format​ / ​locale

LocalDate

String

format​ / ​locale

Time

String

format​ / ​locale

Period

String

TimeZone

String

Number

String

format​ / ​locale

Boolean

String

Range

String

,​ を区切り文字として使用して、範囲のすべての値を含む文字列を返します。

Type

String

DateTime

Time

LocalDateTime

Time

LocalTime

Time

String

Time

format

DateTime

TimeZone

Time

TimeZone`

String

TimeZone

型強制のプロパティ

プロパティ 説明 class

Object (オブジェクト) 型の Java クラスを受け入れます。

format

数値と日付を書式設定するための Java ​DecimalFormat​ パターンを受け入れます。

locale

Java ロケールを受け入れます。Java ​Locale​ オブジェクトは地域 (地理的、政治的、または文化的) を表します。

unit