Jolt规范从数组中删除元素



对于我的输入json,我需要编写一个可以删除externalId的Jolt规范。externalid列表中的字段为了避免在列表中重复此元素。

输入:

{
"id": "id_1",
"targetId": "targetId42",
"externalId": "1extid",
"attributes": {
"uniqueInfo": {
"externalIds": [
"3extid",
"2extid",
"4extid",
"1extid",
"5extid"
]
}
}
}

所需输出:

{
"id": "id_1",
"targetId": "targetId42",
"externalId": "1extid",
"attributes": {
"uniqueInfo": {
"externalIds": [
"3extid",
"2extid",
"4extid",
"5extid"
]
}
}
}

有人可以帮助这个查询。谢谢。

可以连续使用"$":"@(0)"技术,以删除由于一致值(1extid)而生成的数组)externalId这样的转换规范

[
{
"operation": "shift",
"spec": {
"*": "&",
"externalId": "attributes.uniqueInfo.externalIds.@(0)", //exchange key-value pair
"@(0,externalId)": "externalId", //multiplexing value to keep for later steps
"attributes": {
"uniqueInfo": {
"externalIds": {
"*": {
"@(4,externalId)": "&4.&3.&2.@(0)" //exchange key-value pairs
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": "&",
"attributes": {
"uniqueInfo": {
"externalIds": {
"*": {
"$": "&4.&3.&2.@(0)"//exchange key-value pairs again
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": "&",
"attributes": {
"uniqueInfo": {
"externalIds": {
"*": {
"*": "&4.&3.&2[&]"
}
}
}
}
}
}
]

最新更新