问题描述
下面是我的输入
[
{
"corrId": "ed1e30","payloadFormat": "CASH","payload": {
"DateTime": "1118083350"
}
},{
"correlationId": "ed1e30c","payloadFormat": "CREDIT","payload": {
"DateTime": "1119092545"
}
}
]
预期输出应为
[
{
"correlationId": "ed1e30","Date": "18/11/2020","Time": "083350"
},"Date": "19/11/2020","Time": "092545"
}
}
]
解决方法
Jolt没有日期实用程序,但是可以通过modify-default-beta
操作来完成,
[
{
"operation": "modify-default-beta","spec": {
"*": {
"Time": "=substring(@(1,payload.DateTime),4,10)","month": "=substring(@(1,2)","day": "=substring(@(1,2,4)"
}
}
},{
"operation": "modify-default-beta","spec": {
"*": {
"Date": "=concat(@(1,day),'/',@(1,month),'/2020')"
}
}
},{
"operation": "remove","spec": {
"*": {
"payload": "","month": "","day": "","DateTime": ""
}
}
}
]
,
我已使用以下JOLT规范转换日期。
[{
"operation": "shift","spec": {
"*": {
"@": "&","payload": {
"DateTime": "&2.payload.TMPDE"
}
}
}
},{
"operation": "modify-default-beta","spec": {
"*": {
"payload": {
"DateM": "=substring(@(1,TMPDE),"DateD": "=substring(@(1,4)","Time": "=substring(@(1,"TrnDate": "=join('/',DateD),DateM),2020)"
}
}
}
},{
"operation": "shift","spec": {
"*": {
"correlationId": "[&1].COR_REL_ID","payloadFormat": "[&1].payloadFormat","payload": {
"@TrnDate": "[#3].Date","@Time": "[#3].Time"
}
}
}
}
]