Flex Gateway新着情報
Governance新着情報
Monitoring API Managerこの DataWeave の例では、DataWeave map
関数を使用して、本の配列を反復処理し、それぞれで一連のタスクを実行します。
開始する前に、DataWeave バージョン 2 (%dw 2.0
) は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントセットの DataWeave バージョン 1 (%dw 1.0
) の例を参照してください。他の Mule バージョンの場合は、目次の Mule Runtime バージョンセレクターを使用できます。
この例では、次の DataWeave 関数を使用します。
books
配列の各オブジェクトを調べる map
。
価格データを Number (数値) 型に強制変換する as
。これにより、変換で各要素の正しい型が生成されます。
%dw 2.0
output application/json
---
items: payload.books map (item, index) -> {
book: item mapObject (value, key) -> {
(upper(key)): value
}
}
{
"books": [
{
"-category": "cooking",
"title":"Everyday Italian",
"author": "Giada De Laurentiis",
"year": "2005",
"price": "30.00"
},
{
"-category": "children",
"title": "Harry Potter",
"author": "J K. Rowling",
"year": "2005",
"price": "29.99"
},
{
"-category": "web",
"title": "XQuery Kick Start",
"author": [
"James McGovern",
"Per Bothner",
"Kurt Cagle",
"James Linn",
"Vaidyanathan Nagarajan"
],
"year": "2003",
"price": "49.99"
},
{
"-category": "web",
"-cover": "paperback",
"title": "Learning XML",
"author": "Erik T. Ray",
"year": "2003",
"price": "39.95"
}
]
}
{
"items": [
{
"book": {
"-CATEGORY": "cooking",
"TITLE": "Everyday Italian",
"AUTHOR": "Giada De Laurentiis",
"YEAR": "2005",
"PRICE": "30.00"
}
},
{
"book": {
"-CATEGORY": "children",
"TITLE": "Harry Potter",
"AUTHOR": "J K. Rowling",
"YEAR": "2005",
"PRICE": "29.99"
}
},
{
"book": {
"-CATEGORY": "web",
"TITLE": "XQuery Kick Start",
"AUTHOR": [
"James McGovern",
"Per Bothner",
"Kurt Cagle",
"James Linn",
"Vaidyanathan Nagarajan"
],
"YEAR": "2003",
"PRICE": "49.99"
}
},
{
"book": {
"-CATEGORY": "web",
"-COVER": "paperback",
"TITLE": "Learning XML",
"AUTHOR": "Erik T. Ray",
"YEAR": "2003",
"PRICE": "39.95"
}
}
]
}
本に複数の著者がいる場合、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
}
})
{
"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
}
}
]
}