Flex Gateway新着情報
Governance新着情報
Monitoring API Managerこの DataWeave の例では、JSON オブジェクトの一部のキーの名前を変更し、出力の他のキーの名前はすべてそのままにします。
開始する前に、DataWeave バージョン 2 (%dw 2.0
) は Mule 4 アプリケーションを対象とすることに注意してください。Mule 3 アプリケーションの場合、Mule 3.9 ドキュメントセットの DataWeave バージョン 1 (%dw 1.0
) の例を参照してください。他の Mule バージョンの場合は、目次の Mule Runtime バージョンセレクターを使用できます。
この例では、次の関数を使用します。
JSON オブジェクトの key:value
ペアを調べる mapObject
。
どのような場合にキーの名前を変更するのかを単独で決定する if
。
新しい名前の 2 つのキーを除くすべてのキーの名前を保持する if
と and
。
キーの型を String (文字列) に強制変換する as
。
%dw 2.0
output application/json
---
payload.flights map (flight) -> {
(flight mapObject (value, key) -> {
(emptySeats: value) if(key as String == 'availableSeats'),
(airline: value) if(key as String == 'airlineName'),
((key):value) if(key as String !='availableSeats' and key as String != 'airlineName')
})
}
{
"flights":[
{
"availableSeats":45,
"airlineName":"Ryan Air",
"aircraftBrand":"Boeing",
"aircraftType":"737",
"departureDate":"12/14/2017",
"origin":"BCN",
"destination":"FCO"
},
{
"availableSeats":15,
"airlineName":"Ryan Air",
"aircraftBrand":"Boeing",
"aircraftType":"747",
"departureDate":"08/03/2017",
"origin":"FCO",
"destination":"DFW"
}]
}
[
{
"emptySeats": 45,
"airline": "Ryan Air",
"aircraftBrand": "Boeing",
"aircraftType": "737",
"departureDate": "12/14/2017",
"origin": "BCN",
"destination": "FCO"
},
{
"emptySeats": 15,
"airline": "Ryan Air",
"aircraftBrand": "Boeing",
"aircraftType": "747",
"departureDate": "08/03/2017",
"origin": "FCO",
"destination": "DFW"
}
]
より管理しやすい方法で同じ出力を生成するには、DataWeave パターン一致を使用します。
この例では、以下の関数とステートメントを使用します。
JSON オブジェクトの key:value
ペアを調べる mapObject
。
入力の各キーに対する match
。
入力内の一致するキーの名前を変更する case
ステートメント。
名前の変更を必要としないキーの名前を保持する else
ステートメント。
%dw 2.0
output application/json
fun renameKey(key: Key) = key match {
case "availableSeats" -> "emptySeats"
case "airlineName" -> "airline"
else -> (key)
}
---
payload.flights map (flight) ->
flight mapObject (value, key) -> {
(renameKey(key)) : value
}
{
"flights":[
{
"availableSeats":45,
"airlineName":"Ryan Air",
"aircraftBrand":"Boeing",
"aircraftType":"737",
"departureDate":"12/14/2017",
"origin":"BCN",
"destination":"FCO"
},
{
"availableSeats":15,
"airlineName":"Ryan Air",
"aircraftBrand":"Boeing",
"aircraftType":"747",
"departureDate":"08/03/2017",
"origin":"FCO",
"destination":"DFW"
}]
}
[
{
"emptySeats": 45,
"airline": "Ryan Air",
"aircraftBrand": "Boeing",
"aircraftType": "737",
"departureDate": "12/14/2017",
"origin": "BCN",
"destination": "FCO"
},
{
"emptySeats": 15,
"airline": "Ryan Air",
"aircraftBrand": "Boeing",
"aircraftType": "747",
"departureDate": "08/03/2017",
"origin": "FCO",
"destination": "DFW"
}
]