DataWeave セレクタ

DataWeave 2.0 セレクタはオブジェクトと配列の構造をトラバースし、一致する値を返します。

セレクタは常にコンテキスト内で動作し、コンテキストには、変数への参照、オブジェクトリテラル、配列リテラル、または DataWeave 関数の呼び出しとすることができます。

セレクタ種別 構文 戻り値のデータ型

単一値

.keyName

一致するキーに属する値の任意の型

複数値

.*keyName

すべての一致するキーの値の配列

下位

..keyName

すべての一致する下位キーの値の配列

キー-値ペア

.&keyName

一致するキーを持つオブジェクト

インデックス

[<index>]

選択された配列インデックスの位置にある任意の型の値

範囲

[<index> to <index>]

選択されたインデックスからの値を含む配列

XML 属性

@.@keyName

選択された属性の文字列値

名前空間

keyName.#

選択されたキーの名前空間の文字列値

キーの存在

keyName?keyName.@type?

ブール (オブジェクトまたは XML 属性の選択されたキーが存在する場合は true、存在しない場合は false)

アサートの存在

keyName!

文字列: キーが存在しない場合の例外メッセージ

検索条件

keyName[?(boolean_expression)]

DataWeave 式が true を返す 場合 、キー-値ペアを含む配列またはオブジェクト。それ以外の場合、null を返します。

例については、「データの抽出」を参照してください。

変数に保存されたコンテンツでのセレクタの使用

すべてのセレクタが、定義済みの Mule Runtime 変数 (payloadattributes など) および DataWeave 変数で機能します。たとえば、var myVar = { "id" : "1234", "name" : "somebody" } として定義された DataWeave 変数があるとします。DataWeave 式 myVar.name"name" の値を返し、その値は "somebody" です。

Mule Runtime 変数を使用することで、Mule イベントデータを選択できます。

抽出された値は、サポートされる DataWeave 値の型のいずれかのリテラル値 (たとえば、変数とは対照的) として処理されます。

抽出するデータ 構文

ペイロード

payload (例: payload.name)

payload{"name" : "somebody"} の場合、payload.name"somebody" を返します。

Mule ペイロードについての詳細は、「メッセージペイロード」を参照してください。

属性

attributes.<myAttributeName>

例については、「属性」を参照してください。

変数

<myVariableName>

名前の競合を回避するには、variables を先頭に追加することができます。

variables.<myVariableName>

Muke 変数についての詳細は、「Mule アプリケーションの変数」を参照してください。

エラーオブジェクト

error

フローでのエラーに関する情報については、#[error.cause] を使用できます。

フロー

flow

Logger でのフロー名: #[flow.name]

flow.name は一部の Core コンポーネント (Set Payload、Transform Message など) では機能しません。

フローについての詳細は、「フローおよびサブフロー」を参照してください。

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub