如果字符串是动态的,则 Json 值 "DE000001000150084063368" 的 Jolt 规范带有子字符串

Jolt Spec for Json value "DE000001000150084063368" with substring if string is dynamic

以下是我的输入

[
  {
    "correlationId": "12345",
    "payloadFormat": "Money",
    "payload": {
      "DE61": "000001000150084063368456"
     
    }
  },
  {
    "correlationId": "ed1e3",
    "payloadFormat": "Cash",
    "payload": {
      "DE61": "000001000150084063368"
     
    }
  }
]

预期输出为

[ {
  "payload" : {
    "correlationId" : "12345",
    "payloadFormat" : "Money",
    "DE61SF1" : "00",
    "DE61SF2" : "100015008",
    "DE61SF3" : "4063368",
    "DE61SF4" : "456"
    
  }
}, {
  "payload" : {
    "correlationId" : "ed1e3",
    "payloadFormat" : "Cash",
    "DE61SF1" : "00",
    "DE61SF2" : "100015008",
    "DE61SF3" : "4063368",
    "DE61SF4" : "null"
   
   
  }
} ]

我正在使用低于震动规格

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "@": "&",
        // Shift all the DE nodes to a same named node.
        // Here it is moved as TMPDE
        "payload": {
          "DE|DE61": "&2.payload.TMPDE"
        }
      }
    }
  }, {
    "operation": "modify-default-beta",
    "spec": {
      "*": {
        "payload": {
          "DE61SF1": "=substring(@(1,TMPDE), 2, 4)",
          "DE61SF2": "=substring(@(1,TMPDE), 5, 14)",
          "DE61SF3": "=substring(@(1,TMPDE), 14, 21)",
          "DE61SF4": "=substring(@(1,TMPDE), 21, 24)"
        }
      }
    }
  },

   {
    "operation": "shift",
    "spec": {
      "*": {
        "correlationId": "[&1].payload.correlationId",
        "payloadFormat": "[&1].payload.payloadFormat",
        "payload": {
          "DE61SF1": "[&2].payload.DE61SF1",
          "DE61SF2": "[&2].payload.DE61SF2",
          "DE61SF3": "[&2].payload.DE61SF3",
          "DE61SF4": "[&2].payload.DE61SF4",
         
        }
      }
    }
  }
]

但是,如果我的第四个子字符串没有值,那么该值就不会打印。 我的要求是,如果在输入中字符串没有足够的值,那么如果没有值则拆分,那么对于该元素,它应该显示为 null

在规范末尾添加以下规范,这有助于

{
    "operation": "default",
    "spec": {
      "*": {
        "payload": {
          "DE61SF4": "null"
        }
      }
    }
  }