json - jolt:如何将公共值提取到键

问题描述

我正在尝试使用 JOLT(使用 NiFi JoltTransformJson 处理器)将 JSON 转换为不同的格式。

输入 Json

[
  {
    "date": "202001010000","name": "test1","val": "1","status": "0"
  },{
    "date": "202001010000","name": "test2","val": "2",{
    "date": "202001010001","val": "3","val": "4","status": "0"
  }
]

我想像这样输出

{
  "202001010000" : [ {
    "name" : "test1","val" : "1","status" : "0"
  },{
    "name" : "test2","val" : "2","status" : "0"
  }
  ],"202001010001" : [ {
    "name" : "test1","val" : "3","val" : "4","status" : "0"
  }
  ]
}

我正在尝试使用 Jolt Transform 转换 JSON 格式,但它不能。

解决方法

  1. 将日期节点值作为数组中每个对象的键。
  2. 从对象中删除日期节点。

规格:

[
  {
    "operation": "shift","spec": {
      "*": {
        "date": {
          "@1": "@(2,date)"
        }
      }
    }
  },{
    "operation": "remove","spec": {
      "*": {
        "*": {
          "date": ""
        }
      }
    }
  }
]