如何解决需要JOLT规范才能将源JSON格式转换为所需的JSON格式
输入JSON在下面 [ { “ correlationId”:“ 12345”, “ payloadFormat”:“金钱”, “有效载荷”:{ “ DE61”:“ 000001000150084063368”, “ location”:“ south”, “ name”:“ Dallas”, “ pop”:“ 2M” } }, { “ correlationId”:“ ed1e3”, “ payloadFormat”:“现金”, “有效载荷”:{ “ DE”:“ 000001000150084063368”, “ location”:“ west”, “ name”:“ LosAngeles”, “ pop”:“ 4M” } } ]
需要按照以下输出消息进行转换。
[ {
"payload": {
"correlationId": "12345","payloadFormat": "Money","DE61SF1": "00","DE61SF2": "100015008","DE61SF3": "4063368","location": "south","name": "Dallas","pop": "2M"
}
}, {
"payload": {
"correlationId": "ed1e3","payloadFormat": "Cash","location": "west","name": "LosAngeles","pop": "4M"
}
} ]
解决方法
检查此规格
[
{
"operation": "shift","spec": {
"*": {
"@": "&",// Shift all the DE nodes to a same named node.
// Here it is moved as TMPDE
"payload": {
"DE|DE61": "&2.payload.TMPDE"
}
}
}
},{
"operation": "modify-default-beta","spec": {
"*": {
"payload": {
"DE61SF1": "=substring(@(1,TMPDE),2,4)","DE61SF2": "=substring(@(1,5,14)","DE61SF3": "=substring(@(1,14,21)"
}
}
}
},{
"operation": "shift","spec": {
"*": {
"correlationId": "[&1].payload.correlationId","payloadFormat": "[&1].payload.payloadFormat","payload": {
"DE61SF1": "[&2].payload.DE61SF1","DE61SF2": "[&2].payload.DE61SF2","DE61SF3": "[&2].payload.DE61SF3","location": "[&2].payload.location","pop": "[&2].payload.pop","name": "[&2].payload.name"
}
}
}
}
]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。