Json 对象的JOLT spec数组移除键
我试图了解如何删除下面的关键层和对象层。任何帮助都将不胜感激。尝试在NIFI中使用震动处理器来解决此数据更改 输入:Json 对象的JOLT spec数组移除键,json,jolt,Json,Jolt,我试图了解如何删除下面的关键层和对象层。任何帮助都将不胜感激。尝试在NIFI中使用震动处理器来解决此数据更改 输入: [ { "rbr" : { "fetchTime" : "2020-07-06T23:46:23.677Z", "customMetadata" : { "x" : "1", "o2" : {
[ {
"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]。&”和“
嘿,欢迎,请附上您的尝试,以便我们能够提供帮助,谢谢。欢迎使用堆栈溢出。请学习堆栈溢出的工作原理并阅读。Ask是关于用Jolt转换JSON的。你的回答似乎无关紧要。有没有办法让我不必做具体的参考资料就把这里的一切都搞糟了?对象内部可能存在动态显示的元素,我不想为所有可能的元素编写代码?@user13895956出于某种原因编辑了应答器,这两个元素都将对象中的所有公共项填充到单个对象中的数组中。
[
{
"operation": "shift",
"spec": {
"*": {
"*": {
"*": {
"@": "[#3].&",
"$1": "[#3].type"
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"type": "=firstElement(@(1,type))"
}
}
}
]