JoltTransformJSON - 3 JSON 次转换

JoltTransformJSON - 3 JSON transformations

我正在使用 JoltTransformJSON 处理器,我认为它非常强大但使用起来很复杂,而且没有太多关于它的文档。

我有以下输入 JSON:

{
   "logTypeCode":"FIN",
   "eventNumber":"1",
   "eventTime":1568066703172,
   "eventInfo":{
      "eventId":"CREATE_DOMESTIC_STANDING_ORDER",
      "eventVersion":"1"
   },
   "operationInfo":{
      "operationId":"DOMESTIC_STANDING_ORDER"
   }
}

还有我想要的输出JSON:

{
   "body":{
      "logTypeCode":"END_OF_TESTING",
      "eventNumber":"1",
      "eventTime":1568066703172,
      "eventInfo":{
         "eventId":"CREATE_DOMESTIC_STANDING_ORDER",
         "eventVersion":"1"
      },
      "operationInfo":{
         "operationId":"DOMESTIC_STANDING_ORDER"
      }
   },
   "header":{
      "date":"${dateInPropertiesFlow}"
   },
   "customValue":{
      "logTypeCode":"END_OF_TESTING",
      "ENV":"${anotherPropertie}"
   }
}

基本上,我想将出现在“body”字段中的所有内容分组,然后我需要创建另一个名为“header”的字段,其中包含一个字段称为“date”,其值为 属性 通过流程获得,最后我需要一个名为“customValue”的字段,其中值“logTypeCode”必须与该字段具有相同的值那是在“body.logTypeCode”。

我在应用程序中尝试了几种方法 https://jolt-demo.appspot.com/#inception 但我无法让它按我想要的方式工作,目前这是我最接近的方法....

[
  {
    "operation": "shift",
    "spec": {
      "*": "body.&"
    }
   },
  {
    "operation": "default",
    "spec": {
      "header": {
        "date": "${paramDate}"
      }
    }
  }
]

我做了很多测试,但我得不到我需要的结果...求救!

你可以startend规范通过modify-overwrite-beta等操作作为

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "logTypeCode": "END_OF_TESTING"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "*": "body.&"
    }
  },
  {
    "operation": "default",
    "spec": {
      "header": {
        "date": "${dateInPropertiesFlow}"
      },
      "customValue": {
        "logTypeCode": "logTypeCode",
        "ENV": "${anotherPropertie}"
      }
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "customValue": {
        "logTypeCode": "@(2,body.logTypeCode)"
      }
    }
  }
]