颠簸条件规格

问题描述 投票:0回答:0

我想要一个条件转换,如果输入中特定字段的值符合我的条件,我需要在输出中添加一个属性。以下是我需要的输入和输出。

输入-

{
  "MC": "OTHER",
  "mProperty": {
    "PID1": "value1",
    "PID2": "value2",
    "PID3": "k1"
  }
}

条件 - 如果 MC 值为 OTHER,我想向 PID1(或任何 id)添加一个新字段 dataType=string。

预期产出 -

{
  "mDefintion" : {
    "mProperty" : [ {
      "id" : {
        "value" : "PID1"
      },
      "value" : [ {
        "valueString" : {
          "value" : "value1"
        }
      } ],
      "datatype" : "string"
    }, {
      "id" : {
        "value" : "PID2"
      },
      "value" : [ {
        "valueString" : {
          "value" : "value2"
        }
      } ],
      "datatype" : "integer"
    }, {
      "id" : {
        "value" : "PID3"
      },
      "value" : [ {
        "valueString" : {
          "value" : "k1"
        }
      } ],
      "datatype" : "integer"
    } ]
  }
}

非常感谢任何帮助。谢谢。

下面是我正在使用的颠簸代码-

[
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "mProperty": {
        "PID1": {
          "#piid": "mDefintion.mProperty[#2].id.value",
          "@": "mDefintion.mProperty[#2].value[0].valueString.value"
        },
        "*": {
          "$": "mDefintion.mProperty[#2].id.value",
          "@": "mDefintion.mProperty[#2].value[0].valueString.value"
        }
      }
    }
  }
]

无论我尝试多少,我都无法使条件部分正常工作。下面是我为上面的代码得到的输出 -

{
  "MC" : "OTHER",
  "mDefintion" : {
    "mProperty" : [ {
      "id" : {
        "value" : "piid"
      },
      "value" : [ {
        "valueString" : {
          "value" : "value1"
        }
      } ]
    }, {
      "id" : {
        "value" : "PID2"
      },
      "value" : [ {
        "valueString" : {
          "value" : "value2"
        }
      } ]
    }, {
      "id" : {
        "value" : "PID3"
      },
      "value" : [ {
        "valueString" : {
          "value" : "k1"
        }
      } ]
    } ]
  }
}

java json transform jolt
© www.soinside.com 2019 - 2024. All rights reserved.