2

dataweave で次のコードを使用して、オブジェクトのリストを csv に変換しようとしています。

%dw 1.0
%type company = :object {class: "java.util.ArrayList"}
%input payload application/java
%output application/csv
---
{
    name: payload.name,
    address: payload.address
} as :company 

以下は、上記のデータ ウィーブ コードを実行したときに得られる出力です。

name,name
testName,testName2
testAddress,testAddress2

私は次のことを期待していますが:(サンプルデータ)

name,address
testName,testAddress
testName2,testAddress2

データ ウィーブ コンポーネントに欠けているものを理解するのを手伝ってください

4

4 に答える 4

5

一般的に言えば、DataWeave を使用する場合、多かれ少なかれ他のデータ形式のスーパーセットである正規表現を使用して出力を記述します。

CSV 出力を生成するには、オブジェクトの配列を生成する必要があります。
これらの各オブジェクトは、CSV 行を表します。
DataWeave のオブジェクトはキーと値のペアのセットです

マッピングは次のようになります。

%dw 1.0
%output application/csv
---
payload map {
    name: $.name,
    address: $.address
}

ここでの操作は、リスト内の各エントリに対してandをmap持つオブジェクトを生成します。反復中の暗黙の変数 (各リスト エントリ) を表します。nameaddress$

注:%input payload application/java入力 (JSON、XML、CSV など) の content-type は、設定時にミュール メッセージから取得され、存在しない場合はデフォルトで Java になるため、ディレクティブは必要ありません。

于 2015-08-25T14:50:38.280 に答える