[英]This a question about nifi jolt transformation for grouping json arrays based on a key attribute into new array
我是 JOLT 轉換的新手,我嘗試根據ACCOUNTNUMBER
和ZIP
對以下 JSON 數組對象進行分組,然后使用 JOLT 轉換將其余屬性聚合到各自的角色中。 請幫助我編寫 JOLT 規范以對 JSON 對象進行分組以獲得下面給出的輸出。
輸入:
[
{
"ClientCode": "1234567",
"Relationships": [
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ACCOUNTNUMBER": "1803",
"ROLETYPE": "Payer",
"ROLESEQNUM": 1,
"ZIP": 55111
},
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ACCOUNTNUMBER": "1803",
"ROLETYPE": "Owner",
"ROLESEQNUM": 1,
"ZIP": 55111
},
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ACCOUNTNUMBER": "1803",
"ROLETYPE": "Insured",
"ROLESEQNUM": 1,
"ZIP": 55111
},
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ACCOUNTNUMBER": "1538",
"ROLETYPE": "Payer",
"ROLESEQNUM": 1,
"ZIP": 54333
},
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ACCOUNTNUMBER": "1538",
"ROLETYPE": "Owner",
"ROLESEQNUM": 1,
"ZIP": 54333
},
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ACCOUNTNUMBER": "1538",
"ROLETYPE": "Insured",
"ROLESEQNUM": 1,
"ZIP": 54333
}
]
}
]
輸出:
[
{
"ClientCode": "1249612",
"Relationships": [
{
"ACCOUNTNUMBER": "1803",
"ZIP": 55111,
"roles": [
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ROLETYPE": "Payer",
"ROLESEQNUM": 1
},
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ROLETYPE": "Owner",
"ROLESEQNUM": 1
},
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ROLETYPE": "Insured",
"ROLESEQNUM": 1
}
]
},
{
"ACCOUNTNUMBER": "1538",
"ZIP": 54333,
"roles": [
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ROLETYPE": "Payer",
"ROLESEQNUM": 1
},
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ROLETYPE": "Owner",
"ROLESEQNUM": 1
},
{
"ENTITYID": 35056,
"COUNTYCODE": 19,
"ROLETYPE": "Insured",
"ROLESEQNUM": 1
}
]
}
]
}
]
你可以通過下面的移位變換來弄清楚
[
{
"operation": "shift",
"spec": {
"*": {
"ClientCode": "ClientCode",
"Relationships": {
"*": {
"ACCOUNTNUMBER": "&2.[&1].&",
"ZIP": "&2.[&1].&",
"*": "&2.[&1].roles[0].&"
}
}
}
}
}
]
其中星號鍵用於產生每個子對象,並且&2
s 表示從當前位置向上兩級聲明的鍵(例如Relationships
), [&1]
s 將形成的數組的元素一對一組合, roles[0]
s 代表將除我們選擇的元素之外的其余元素放入名為roles
的新數組roles
,最右邊的& 符號代表最里面的鍵值對。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.