Json 对象的JOLT spec数组移除键

Json 对象的JOLT spec数组移除键,json,jolt,Json,Jolt,我试图了解如何删除下面的关键层和对象层。任何帮助都将不胜感激。尝试在NIFI中使用震动处理器来解决此数据更改 输入: [ { "rbr" : { "fetchTime" : "2020-07-06T23:46:23.677Z", "customMetadata" : { "x" : "1", "o2" : {

我试图了解如何删除下面的关键层和对象层。任何帮助都将不胜感激。尝试在NIFI中使用震动处理器来解决此数据更改

输入:

 [ {
  "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))"
      }
    }
  }
]