Flex Gateway新着情報
Governance新着情報
Monitoring API Manager
DataWeave 2.1 は Mule 4.1 と互換性があります。 Mule 4.1 の標準サポートは 2020 年 11 月 2 日に終了しました。このバージョンの Mule は、拡張サポートが終了する 2022 年 11 月 2 日にそのすべてのサポートが終了します。 このバージョンの Mule を使用する CloudHub には新しいアプリケーションをデプロイできなくなります。許可されるのはアプリケーションへのインプレース更新のみになります。 標準サポートが適用されている最新バージョンの Mule 4 にアップグレードすることをお勧めします。これにより、最新の修正とセキュリティ機能強化を備えたアプリケーションが実行されます。 |
この DataWeave の例では、DataWeave map
関数を使用して、本の配列を反復処理し、それぞれで一連のタスクを実行します。
次の DataWeave 関数を使用します。
books
配列の各オブジェクトを調べる map
。
価格データを Number (数値) 型に強制変換する as
。これにより、変換で各要素の正しい型が生成されます。
%dw 2.0
output application/json
---
items: payload.books map ((item, index) -> {
category: "book",
price: item.price as Number,
id: index,
properties: {
title: item.title,
author: item.author,
year: item.year as Number
}
}
)
{
"books": [
{
"-category": "cooking",
"title": {
"-lang": "en",
"#text": "Everyday Italian"
},
"author": "Giada De Laurentiis",
"year": "2005",
"price": "30.00"
},
{
"-category": "children",
"title": {
"-lang": "en",
"#text": "Harry Potter"
},
"author": "J K. Rowling",
"year": "2005",
"price": "29.99"
},
{
"-category": "web",
"title": {
"-lang": "en",
"#text": "XQuery Kick Start"
},
"author": [
"James McGovern",
"Per Bothner",
"Kurt Cagle",
"James Linn",
"Vaidyanathan Nagarajan"
],
"year": "2003",
"price": "49.99"
},
{
"-category": "web",
"-cover": "paperback",
"title": {
"-lang": "en",
"#text": "Learning XML"
},
"author": "Erik T. Ray",
"year": "2003",
"price": "39.95"
}
]
}
{
"items": [
{
"category": "book",
"price": 30.00,
"id": 0,
"properties": {
"title": {
"-lang": "en",
"#text": "Everyday Italian"
},
"author": "Giada De Laurentiis",
"year": 2005
}
},
{
"category": "book",
"price": 29.99,
"id": 1,
"properties": {
"title": {
"-lang": "en",
"#text": "Harry Potter"
},
"author": "J K. Rowling",
"year": 2005
}
},
{
"category": "book",
"price": 49.99,
"id": 2,
"properties": {
"title": {
"-lang": "en",
"#text": "XQuery Kick Start"
},
"author": [
"James McGovern",
"Per Bothner",
"Kurt Cagle",
"James Linn",
"Vaidyanathan Nagarajan"
],
"year": 2003
}
},
{
"category": "book",
"price": 39.95,
"id": 3,
"properties": {
"title": {
"-lang": "en",
"#text": "Learning XML"
},
"author": "Erik T. Ray",
"year": 2003
}
}
]
}
本に複数の著者がいる場合、item.author は 1 つの名前ではなく著者の配列全体に評価されます。
|
次の例では、上記と同じ変換を実行しますが、プロパティ「item」および「index」を明示的に定義しません。代わりに、それぞれのデフォルト名 ($
および $$
) でコールします。
%dw 2.0
output application/json
---
items: (payload.books map {
category: "book",
price: $.price as Number,
id: $$,
properties: {
title: $.title,
author: $.author,
year: $.year as Number
}
})