前回に引き続きDataWeaveを使用した使い方例、まだまだありますのでどんどん使用例をあげていこうかと思います。
使い方例
ファイル読み込み
readUrlを使用することで、ファイルからJSONなどのデータを取り込むことが可能になります。Set PayloadやTransform messageなどに以下のコードを記載することでファイル取り込みが可能になります。
%dw 2.0
output application/json
---
readUrl("classpath://fruits.json", "application/json")
readUrlの第一引数にはファイルパス、第二引数にはMIMEタイプを記載します。ファイルパスのclasspathはmainのresourcesフォルダが起点となるので、ここに「fruits.json」ファイルを作成し、JSONの内容を記載します。
フロー実行の際にJSONファイルが読み込まれ、ご覧のようにファイルの内容が取り込まれているのがわかります。
readUrlはUnit Testでテストデータとして使用する場面があるかと思いますので、使い方を覚えておきましょう。
readUrlはソースコードの領域(「—」以前)でも使用することが可能で、以下のように記載しても同様の結果が得られます。
%dw 2.0
var fruitsData = readUrl("classpath://fruits.json", "application/json")
output application/json
---
fruitsData
配列の一部を取り出し
JSON化されたデータ配列の中で一部を取り出して配列化した場合の記載方法です。前述のfruits.jsonからfruit部分だけを取り出して配列化する場合の記載方法は以下のようになります。
%dw 2.0
var fruitsData = readUrl("classpath://fruits.json", "application/json")
output application/json
---
fruitsData.*fruit
JSON配列に対して要素名の先頭にアスタリスクを付与することによって、「fruit」部分が取り出され配列化されます。上記の実行結果は以下のようになります。
[
"banana",
"apple",
"orange"
]
この記載方法も個人的にはよく使うんじゃないかと思います。例えば、SalesforceのQueryでSelectをかけた時、Id部分だけを取り出してリストに詰め込むというのをApexを組んだことがある方は経験があるんじゃないかと思います。DataWeaveの上記記載を使えばId部分だけを配列化できるのでとても便利です。
DataWeaveを駆使したテクニックはまだまだありますので、次回以降も使い方を掘り下げていきたいと思います。
コメント