JOLT spec array of objects 删除键
JOLT spec array of objects remove key
我正在尝试了解如何删除下面的键和对象层。任何帮助将不胜感激。尝试在 NIFI 中使用 JOLT 处理器来解决此数据更改。
输入:
[ {
"rbr" : {
"fetchTime" : "2020-07-06T23:46:23.677Z",
"customMetadata" : {
"x" : "1",
"o2" : {
"x2" : "y"
}
}
},
"xyz": {
"fetchTime" : "2020-07-06T23:46:23.677Z",
"customMetadata" : {
"x" : "1",
"o2" : {
"x2" : "y"
}
}
}
}
]
期望的输出:
[
{
"fetchTime" : "2020-07-06T23:46:23.677Z",
"customMetadata" : {
"x" : "1",
"o2" : {
"x2" : "y"
}
},
"type": "rbr"
},
{
"fetchTime" : "2020-07-06T23:46:23.677Z",
"customMetadata" : {
"x" : "1",
"o2" : {
"x2" : "y"
}
},
"type": "xyz"
}
]
遍历数组,并为每个 obj
创建 newObj
,如下所示:
objKey=Object.keys(obj)[0];
newObj=obj[objKey];
newObj.type=objKey;
并推入新数组。
可以通过简单的移位操作完成
[
{
"operation": "shift",
"spec": {
"*": {
"*": {
"fetchTime": "[#2].fetchTime",
"customMetadata": "[#2].customMetadata",
"$": "[#2].type"
}
}
}
}
]
编辑 1
可以使用 "@": "[#3].&",
从当前水平移动所有值
[
{
"operation": "shift",
"spec": {
"*": {
"*": {
"*": {
"@": "[#3].&",
"": "[#3].type"
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"type": "=firstElement(@(1,type))"
}
}
}
]
我正在尝试了解如何删除下面的键和对象层。任何帮助将不胜感激。尝试在 NIFI 中使用 JOLT 处理器来解决此数据更改。
输入:
[ {
"rbr" : {
"fetchTime" : "2020-07-06T23:46:23.677Z",
"customMetadata" : {
"x" : "1",
"o2" : {
"x2" : "y"
}
}
},
"xyz": {
"fetchTime" : "2020-07-06T23:46:23.677Z",
"customMetadata" : {
"x" : "1",
"o2" : {
"x2" : "y"
}
}
}
}
]
期望的输出:
[
{
"fetchTime" : "2020-07-06T23:46:23.677Z",
"customMetadata" : {
"x" : "1",
"o2" : {
"x2" : "y"
}
},
"type": "rbr"
},
{
"fetchTime" : "2020-07-06T23:46:23.677Z",
"customMetadata" : {
"x" : "1",
"o2" : {
"x2" : "y"
}
},
"type": "xyz"
}
]
遍历数组,并为每个 obj
创建 newObj
,如下所示:
objKey=Object.keys(obj)[0];
newObj=obj[objKey];
newObj.type=objKey;
并推入新数组。
可以通过简单的移位操作完成
[
{
"operation": "shift",
"spec": {
"*": {
"*": {
"fetchTime": "[#2].fetchTime",
"customMetadata": "[#2].customMetadata",
"$": "[#2].type"
}
}
}
}
]
编辑 1
可以使用 "@": "[#3].&",
[
{
"operation": "shift",
"spec": {
"*": {
"*": {
"*": {
"@": "[#3].&",
"": "[#3].type"
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"type": "=firstElement(@(1,type))"
}
}
}
]