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 の例では、ある項目に基づいてグループ化されている入力を取得し、別の項目に基づいてデータをグループ化する新しい構造に変換します。
両方の例で、次の関数を使用します。
subject
で項目を整理する groupBy
入力の項目を新しい階層にマップする mapObject
および map
。
%dw 2.0
output application/json
---
classrooms: payload..*teacher groupBy $.subject mapObject ((teacherGroup, subject) -> {
class: {
name: subject,
teachers: { (teacherGroup map {
teacher:{
name: $.name,
lastName: $.lastName
}
})
}
}
})
<school>
<teachers>
<teacher>
<name>Mariano</name>
<lastName>De Achaval</lastName>
<subject>DW</subject>
</teacher>
<teacher>
<name>Emiliano</name>
<lastName>Lesende</lastName>
<subject>DW</subject>
</teacher>
<teacher>
<name>Leandro</name>
<lastName>Shokida</lastName>
<subject>Scala</subject>
</teacher>
</teachers>
</school>
{
"classrooms": {
"class": {
"name": "Scala",
"teachers": {
"teacher": {
"name": "Leandro",
"lastName": "Shokida"
}
}
},
"class": {
"name": "DW",
"teachers": {
"teacher": {
"name": "Mariano",
"lastName": "De Achaval"
},
"teacher": {
"name": "Emiliano",
"lastName": "Lesende"
}
}
}
}
}
この DataWeave の例では、JSON オブジェクトの階層を変更します。出力では、language
で項目をグループ化し、各コースの参加者の名前が含まれる新しい要素 attendees
を追加します。
%dw 2.0
output application/json
---
{
"langs" :
payload.langs groupBy $.language
mapObject ((nameGroup, language) -> {
(language): {
"attendees" : nameGroup map {
name: $.name
}
}
})
}
{
"langs": [
{
"name": "Alex",
"language": "Java"
},
{
"name": "Kris",
"language": "Scala"
},
{
"name": "Jorge",
"language": "Java"
}
]
}
{
"langs": {
"Java": {
"attendees": [
{
"name": "Alex"
},
{
"name": "Jorge"
}
]
},
"Scala": {
"attendees": [
{
"name": "Kris"
}
]
}
}
}