2016-07-22 35 views
0

我面臨的問題是在dataweave中重複多個列表。所述dataweave的如何在數據編織內重複多個列表

輸入 - >在兩個流量可變因素(如下),

var1: [{bkAuthorID=1, bkAuthorName=abc, bookCategory=horror}, {bkAuthorID=2, bkAuthorName=xyz, bookCategory=horror}, {bkAuthorID=1, bkAuthorName=abc, bookCategory=comedy}, {bkAuthorID=2, bkAuthorName=xyz, bookCategory=Fantacy}}] 

var2: [{bkAuthorID=1, bkName=gjh, bkDescription=kjh},{bkAuthorID=1, bkName=sfs, bkDescription=kjh},{bkAuthorID=2, bkName=gjh, bkDescription=kjh},{bkAuthorID=2, bkName=gjh, bkDescription=kjh}] 

輸出在dataweave未來 - >期望的JSON藥結構與三個列表是象下面這樣。

{ 
    "books": [ 
    { 
     "bookAuthor": "abc", 
     "bookCategorys": [ 
     { 
      "bookCategory": "horror", 
      "listOfBooks": [ 
      { 
       "bookName": "xyz", 
       "bookDescription":"lmn" 
      }, 
      { 
       "bookName": "xyz", 
       "bookDescription":"lmn" 
      } 
      ] 
     }, 
     { 
      "bookCategory": "comedy", 
      "listOfBooks": [ 
      { 
       "bookName": "xyz", 
       "bookDescription":"lmn" 
      } 
      ] 
     } 
     ] 
    }, 
    { 
     "bookAuthor": "xyz", 
     "bookCategorys": [ 
     { 
      "bookCategory": "horror", 
      "listOfBooks": [ 
      { 
       "bookName": "xyz", 
       "bookDescription":"lmn" 
      } 
      ] 
     } 
     ] 
    } 
    ] 
} 

任何人都可以幫助在這個要求這個數據網絡映射。

@Manik,你能幫我一把。

+0

能否請你加什麼樣的數據是VAR1和VAR2,什麼是那些之間的關係的一些細節?另外,你正在試圖達到什麼目標(例如,按作者分組,然後是分類)?你是否得到了爲什麼合併這兩個列表的錯誤? –

回答

0

我能夠使用bkAuthorID在var1和var2之間建立關係。 但是,必須有多一個關係才能確定var2中的哪本書屬於哪個類別。因此,在下面的輸出中,每個類別都將包含該作者編寫的所有書籍的列表。無論如何,您只需在'listOfBooks'一行中添加一個過濾條件即可。

Dataweave代碼:

%dw 1.0 
%output application/json 
--- 
{ 
    books:(flowVars.var1 groupBy $.bkAuthorName map using (authorId=$.bkAuthorID[0]) { 
     bookAuthor:$[0].bkAuthorName, 
     bookCategorys: $ groupBy $.bookCategory map { 
      bookCategory:$.bookCategory[0], 
      listOfBooks: flowVars.var2[?($.bkAuthorID == authorId)] map { 
       bookName:$.bkName, 
       bookDescription:$.bkDescription 
      } 
     } 
    }) 
} 

輸出:

{ 
"books": [ 
{ 
    "bookAuthor": "abc", 
    "bookCategorys": [ 
    { 
     "bookCategory": "horror", 
     "listOfBooks": [ 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     }, 
     { 
      "bookName": "sfs", 
      "bookDescription": "kjh" 
     } 
     ] 
    }, 
    { 
     "bookCategory": "comedy", 
     "listOfBooks": [ 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     }, 
     { 
      "bookName": "sfs", 
      "bookDescription": "kjh" 
     } 
     ] 
    } 
    ] 
}, 
{ 
    "bookAuthor": "xyz", 
    "bookCategorys": [ 
    { 
     "bookCategory": "horror", 
     "listOfBooks": [ 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     }, 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     } 
     ] 
    }, 
    { 
     "bookCategory": "Fantacy", 
     "listOfBooks": [ 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     }, 
     { 
      "bookName": "gjh", 
      "bookDescription": "kjh" 
     } 
     ] 
    } 
    ] 
} 
] 
}