リーダーとライターの設定プロパティの設定

DataWeave では、JSON (​application/json​)、XML (​application/xml​)、(​application/csv​) などのデータ形式の設定プロパティが提供されます。このプロパティでこれらの形式の DataWeave リーダーおよびライターの動作を変更します。たとえば、CSV リーダーのデフォルトの区切り文字はカンマ (​,​) です。この形式の ​separator​ プロパティを使用して、CSV コンテンツの別の区切り文字を指定できます。

さまざまなデータ形式で使用可能なリーダーとライターのプロパティについての詳細は、​「サポートされるデータ形式」​を参照してください。

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

出力ディレクティブでのライタープロパティの使用

次の例は、ライタープロパティを DataWeave ​output​ ディレクティブに追加する方法を示しています。このスクリプトでは、​indent = false​ を使用して JSON 出力を 1 行に圧縮します。

DataWeave スクリプト:
%dw 2.0
output application/json indent = false
---
{
	hello : "world",
	bello : "world",
	mello : "world"
}
出力 JSON:
{"hello": "world","bello": "world","mello": "world"}

次の例でも、ライター設定プロパティを ​output​ ディレクティブに追加しています。

DataWeave 関数でのリーダーとライターのプロパティの使用

DataWeave の ​read​、​readUrl​、および ​write​ 関数は、中括弧内の 1 つ以上のカンマ区切りプロパティ設定を受け入れます。

次のスクリプトのヘッダーの ​myVar​ の値は、空の子要素 (​<ex1></ex1>​) を含む XML サンプルを入力する ​read​ 関数です。この関数は、空の要素の値を ​null​ に変換する XML リーダープロパティ ​{nullValueOn: "empty"}​ を渡します。

スクリプトの本文の ​write​ 関数は ​myVar​ の値を入力として受け入れます。この関数では、JSON ライタープロパティを ​{skipNullOn:"objects", writeAttributes:true}​ に渡して、​null​ 値 (​<ex1>null</ex1>​) を含むオブジェクトをスキップし、属性と ​<ex3 a='greeting'>hello</ex3>​ の値を書き込みます。

DataWeave スクリプト:
%dw 2.0
var myVar = read("<greeting><ex1></ex1><ex2>hello</ex2><ex3 a='greeting'>hello</ex3></greeting>", "application/xml", {nullValueOn: "empty"})
output application/json with binary
---
write(myVar.greeting, "application/json", {skipNullOn:"objects", writeAttributes:true})
出力 JSON:
{
  "ex2": "hello",
  "ex3": {
    "@a": "greeting",
    "__text": "hello"
  }
}

リーダープロパティを ​readUrl​ に渡す例を次に示します。