++

DataWeave 2.2 は Mule 4.2 と互換性があり、Mule 4.2 にバンドルされています。 このバージョンの Mule は、拡張サポートが終了する 2023 年 5 月 2 日にその すべてのサポート​が終了しました。

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

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

++(Array<S>, Array<T>): Array<S | T>

2 つの値を連結します。

このバージョンの ​++​ は、2 つの配列の要素を連結して新しい配列にします。その他のバージョンは、DataWeave でサポートされる文字列、オブジェクト、およびさまざまな日付と時刻の形式で動作します。

2 つの配列に含まれる要素の型が異なる場合、作成される配列内には ​Array<S>​ (配列 <S>) に含まれるすべての ​S​ 型の要素の後に ​Array<T>​ (配列 <T>) に含まれるすべての ​T​ 型の要素が続きます。どちらの配列でも、複数の型の要素を混在させることができます。配列には、サポート対象であればどのデータ型でも含めることができます。

パラメーター

名前 説明

source

取得元配列。

with

取得元配列に連結する配列。

次の例では、​Array<Number>​ を ​Array<String>​ に連結します。結果は JSON オブジェクトの値として出力されます。

ソース

%dw 2.0
output application/json
---
{ "result" : [0, 1, 2] ++ ["a", "b", "c"] }

出力

{ "result": [0, 1, 2, "a", "b", "c"] }

ソース

%dw 2.0
output application/json
---
{ "a" : [0, 1, true, "my string"] ++ [2, [3,4,5], {"a": 6}] }

出力

{ "a": [0, 1, true, "my string", 2, [3, 4, 5], { "a": 6}] }

++(String, String): String

2 つの文字列の文字を連結します。

文字列は文字の配列として扱われるため、​++​ 演算子は各文字列の文字を 1 文字の文字列からなる配列であるかのように連結します。

パラメーター

名前 説明

source

取得元文字列。

with

取得元文字列に連結する文字列。

次の例では、2 つの文字列を連結します。ここでは、​Mule​ は ​Array<String> ["M", "u", "l", "e"]​ として扱われます。結果の ​MuleSoft​ は JSON オブジェクトの値として出力されます。

ソース

%dw 2.0
output application/json
---
{ "name" : "Mule" ++ "Soft" }

出力

{ "name": "MuleSoft" }

++(Object, Object): Object

2 つのオブジェクトを連結して、1 つのフラット化したオブジェクトを返します。

++​ 演算子は各オブジェクトからすべてのキー-値ペアを抽出し、 まとめて結合し、1 つのオブジェクトにします。

パラメーター

名前 説明

source

取得元オブジェクト。

with

取得元オブジェクトに連結するオブジェクト。

次の例では、2 つのオブジェクトを連結し、XML に変換します。オブジェクトの配列 ​{aa: "a", bb: "b"}​ は個別の XML 要素にフラット化されます。出力では、指定された JSON オブジェクトのキーが XML 要素として使用され、そのオブジェクトの値が XML 値として使用されます。

ソース

%dw 2.0
output application/xml
---
{ concat : {aa: "a", bb: "b"} ++ {cc: "c"} }

出力

<?xml version="1.0" encoding="UTF-8"?>
<concat>
  <aa>a</aa>
  <bb>b</bb>
  <cc>c</cc>
</concat>

++(Date, LocalTime): LocalDateTime

LocalTime​ (ローカル時刻) を ​Date​ (日付) に付加して ​LocalDateTime​ (ローカル日時) 値を返します。

Date​ (日付) および ​LocalTime​ (ローカル時刻) インスタンスは、標準 Java 表記を パイプ (​|​) 記号で囲んで記述します。結果は、標準 Java 形式の ​LocalDateTime​ (ローカル日時) オブジェクトです。2 つのオブジェクトが連結される順序に 意味はないため、論理的には ​Date LocalTime`​ と ​`LocalTime Date​ の結果は同じになります。

パラメーター

名前 説明

date

Date​ (日付)。

time

LocalTime​ (ローカル時刻)。タイムゾーンなしの時刻形式。

次の例では、​Date​ (日付) オブジェクトと ​LocalTime​ (ローカル時刻) オブジェクトを 連結して、​LocalDateTime​ (ローカル日時) を返します。

ソース

%dw 2.0
output application/json
---
{ "LocalDateTime" : (|2017-10-01| ++ |23:57:59|) }

出力

{ "LocalDateTime": "2017-10-01T23:57:59" }

++(LocalTime, Date): LocalDateTime

LocalTime​ (ローカル時刻) を ​Date​ (日付) に付加して ​LocalDateTime​ (ローカル日時) を返します。

2 つのオブジェクトが連結される順序に 意味はないため、論理的には ​LocalTime Date`​ と ​`Date LocalTime​ の結果は同じになります。

パラメーター

名前 説明

time

LocalTime​ (ローカル時刻)。タイムゾーンなしの時刻形式。

date

Date​ (日付)。

次の例では、​LocalTime​ (ローカル時刻) オブジェクトと ​Date​ (日付) オブジェクトを 連結して、​LocalDateTime​ (ローカル日時) を返します。

ソース

%dw 2.0
output application/json
---
{ "LocalDateTime" : (|23:57:59| ++ |2017-10-01|) }

出力

{ "LocalDateTime": "2017-10-01T23:57:59" }

++(Date, Time): DateTime

Date​ (日付) を​Time​ (時刻) に付加して ​DateTime​ (日時) を返します。

2 つのオブジェクトが連結される順序に意味はないため、 論理的には ​Date​ (日付) + ​Time​ (時刻) と ​Time​ (時刻) + ​Date​ (日付) の結果は同じになります。

パラメーター

名前 説明

date

Date​ (日付)。

time

Time​ (時刻)。タイムゾーン (​Z​ または ​HH:mm​) を含めることができる時刻形式。

次の例では、​Date​ (ローカル時刻) オブジェクトと ​Time​ (日付) オブジェクトを 連結して、​DateTime​ (ローカル日時) を返します。

ソース

%dw 2.0
output application/json
---
[ |2017-10-01| ++ |23:57:59-03:00|, |2017-10-01| ++ |23:57:59Z| ]

出力

[ "2017-10-01T23:57:59-03:00", "2017-10-01T23:57:59Z" ]

++(Time, Date): DateTime

Date​ (日付) を​Time​ (時刻) オブジェクトに付加して ​DateTime​ (日時) を返します。

2 つのオブジェクトが連結される順序に意味はないため、 論理的には ​Date​ (日付) + ​Time​ (時刻) と ​Time​ (時刻) + ​Date​ (日付) の結果は同じになります。

パラメーター

名前 説明

time

Time​ (時刻)。タイムゾーン (​Z​ または ​HH:mm​) を含めることができる時刻形式。

date

Date​ (日付)。

次の例では、​Date​ (日付) を ​Time​ (時刻) と連結して ​DateTime​ (日時) を出力します。 入力はパイプ (​|​) で囲まれています。

ソース

%dw 2.0
output application/json
---
|2018-11-30| ++ |23:57:59+01:00|

出力

"2018-11-30T23:57:59+01:00"

次の例では、​Time​ (時刻) オブジェクトと ​Date​ (日付) オブジェクトを 連結して、​DateTime​ (日時) オブジェクトを返します。最初の ​LocalTime​ (ローカル時刻) オブジェクトは Time (時刻) に変更されています。 日付と時刻の入力の順序によって出力の ​DateTime​ (日時) の順序が変わることはありません。

ソース

%dw 2.0
output application/json
---
{
  "DateTime1" : (|23:57:59| as Time) ++ |2017-10-01|,
  "DateTime2" : |23:57:59Z| ++ |2017-10-01|,
  "DateTime3" : |2017-10-01| ++ |23:57:59+02:00|
}

出力

{
  "DateTime1": "2017-10-01T23:57:59Z",
  "DateTime2": "2017-10-01T23:57:59Z",
  "DateTime3": "2017-10-01T23:57:59+02:00"
}

++(Date, TimeZone): DateTime

TimeZone​ (タイムゾーン) を ​Date​ (日付) 型の値に付加して ​DateTime​ (日時) の結果を返します。

パラメーター

名前 説明

date

Date​ (日付)。

timezone

TimeZone​ (タイムゾーン) (​Z​ または ​HH:mm​)。

次の例では、​Date​ (日付) と ​TimeZone​ (タイムゾーン) (​-03:00​) を連結して、 ​DateTime​ (日時) を返します。​DateTime​ (日時) のローカル時刻は ​00:00:00​ (深夜 0 時) です。

ソース

%dw 2.0
output application/json
---
{ "DateTime" : (|2017-10-01| ++ |-03:00|) }

出力

{ "DateTime": "2017-10-01T00:00:00-03:00" }

++(TimeZone, Date): DateTime

Date​ (日付) を​TimeZone​ (時刻) に付加して ​DateTime​ (日時) を返します。

パラメーター

名前 説明

date

Date​ (日付)。

timezone

TimeZone​ (タイムゾーン) (​Z​ または ​HH:mm​)。

次の例では、​TimeZone​ (タイムゾーン) (​-03:00​) と ​Date​ (日付) を連結して、 ​DateTime​ (日時) を返します。​DateTime​ (日時) のローカル時刻は ​00:00:00​ (深夜 0 時) です。

ソース

%dw 2.0
output application/json
---
{ "DateTime" : |-03:00| ++ |2017-10-01| }

出力

{ "DateTime": "2017-10-01T00:00:00-03:00" }

++(LocalDateTime, TimeZone): DateTime

TimeZone​ (日付) を​ LocalDateTime​ (時刻) に付加して ​DateTime​ (日時) を返します。

パラメーター

名前 説明

dateTime

LocalDateTime​ (ローカル時刻)。タイムゾーンなしの日時。

timezone

TimeZone​ (タイムゾーン) (​Z​ または ​HH:mm​)。

次の例では、​ LocalDateTime​ (日付) と ​TimeZone​ (タイムゾーン) (​-03:00​) を連結して、 ​DateTime​ (日時) を返します。

ソース

%dw 2.0
output application/json
---
{ "DateTime" : (|2003-10-01T23:57:59| ++ |-03:00|) }

出力

{ "DateTime": "2003-10-01T23:57:59-03:00 }

++(TimeZone, LocalDateTime): DateTime

LocalDateTime​ (日付) を​ TimeZone​ (時刻) に付加して ​DateTime​ (日時) を返します。

パラメーター

名前 説明

dateTime

LocalDateTime​ (ローカル時刻)。タイムゾーンなしの日時。

timezone

TimeZone​ (タイムゾーン) (​Z​ または ​HH:mm​)。

次の例では、​TimeZone​ (タイムゾーン) (​-03:00​) と ​LocalDateTime​ (日付) を連結して、 ​DateTime​ (日時) を返します。

ソース

%dw 2.0
output application/json
---
{ "TimeZone" : (|-03:00| ++ |2003-10-01T23:57:59|) }

出力

{ "TimeZone": "2003-10-01T23:57:59-03:00" }

++(LocalTime, TimeZone): Time

TimeZone​ (日付) を​LocalTime​ (時刻) に付加して ​Time​ (日時) を返します。

パラメーター

名前 説明

time

LocalTime​ (ローカル時刻)。タイムゾーン付きの時刻形式。

timezone

TimeZone​ (タイムゾーン) (​Z​ または ​HH:mm​)。

次の例では、​LocalTime​ (日付) と ​TimeZone​ (タイムゾーン) (​-03:00​) を連結して、 ​Time​ (日時) を返します。出力では、未指定の秒には ​:00​ が返されています。

ソース

%dw 2.0
output application/json
---
{ "Time" : (|23:57| ++ |-03:00|) }

出力

{ "Time": "23:57:00-03:00" }

++(TimeZone, LocalTime): Time

LocalTime​ (日付) を​TimeZone​ (時刻) に付加して ​Time​ (日時) を返します。

パラメーター

名前 説明

time

LocalTime​ (ローカル時刻)。タイムゾーンなしの時刻形式。

timezone

TimeZone​ (タイムゾーン) (​Z​ または ​HH:mm​)。

次の例では、​TimeZone​ (タイムゾーン) (​-03:00​) と ​LocalTime​ (日付) を連結して、 ​Time​ (日時) を返します。出力では、未指定の秒には ​:00​ が返されています。

ソース

%dw 2.0
output application/json
---
{ "Time" : (|-03:00| ++ |23:57|) }

出力

{
  "Time": "23:57:00-03:00"
}