是否可以在 Jolt 中连接来自两个不同对象的值

问题描述

我想知道是否可以在 Jolt 中连接来自不同对象的值。我已经成功地将“orderinformation”对象中的“orderType”(值=ABC)和“minorCode”(值0003)连接起来,创建了一个“Job.JobTypeCd”(值ABC0003)的输出键。我想将“serviceType”值添加为该新键的前缀,因此输出值为“123ABC0003”。

示例输入

{
  "orderinformation": {
    "orderType": "ABC","minorCode": "0003"
  },"account": {
    "serviceType": "123"
  }
}

当前规格

[
  {
    "operation": "modify-default-beta","spec": {
      "orderinformation": {
        "JobType": "=concat(@(1,orderType),@(1,minorCode))"
      }
    }
  },{
    "operation": "shift","spec": {
      "orderinformation": {
        "JobType": "Job.JobTypeCd"
      },"account": {
        "serviceType": "Job.AddThisAsPrefix2JobTypeCd"
      }
    }
      }
]

电流输出

{
  "Job" : {
    "JobTypeCd" : "ABC0003","AddThisAsPrefix2JobTypeCd" : "123"
  }
}

期望的输出

{
  "Job" : {
    "JobTypeCd" : "123ABC0003"
  }
}

解决方法

您可以将 serviceType 值包含到与下面相同的 concat 操作中。

"JobType": "=concat(@(2,account.serviceType),@(1,orderType),minorCode))"

完整规格

[
  {
    "operation": "modify-default-beta","spec": {
      "orderInformation": {
        "JobType": "=concat(@(2,minorCode))"
      }
    }
  },{
    "operation": "shift","spec": {
      "orderInformation": {
        "JobType": "Job.JobTypeCd"
      }
    }
   }
]