Json 颠簸变换-替换所有匹配项

Json 颠簸变换-替换所有匹配项,json,transformation,jolt,Json,Transformation,Jolt,我正在尝试使用JOLT转换来工作 我想用“7.11”替换所有“主”值 输入: { "build": [ { "number": "7.11.13898", "branchName": "branch1" }, { "number": "7.11.13896", "branchName": "branch2" }, { "number": "7.11.13895", "branchN

我正在尝试使用JOLT转换来工作

我想用“7.11”替换所有“主”值

输入:

{
  "build": [
    {
      "number": "7.11.13898",
      "branchName": "branch1"
    },
    {
      "number": "7.11.13896",
      "branchName": "branch2"
    },
    {
      "number": "7.11.13895",
      "branchName": "master"
    },
    {
      "number": "7.11.13900",
      "branchName": "master"
    }
  ]
}
期望输出:

{
      "build": [
        {
          "number": "7.11.13898",
          "branchName": "branch1"
        },
        {
          "number": "7.11.13896",
          "branchName": "branch2"
        },
        {
          "number": "7.11.13895",
          "branchName": "7.11"
        },
        {
          "number": "7.11.13900",
          "branchName": "7.11"
        }
      ]
    }
如果不改变数据的结构,我似乎无法得到一个有效的转换或移位。 目前的做法:

[
  {
    "operation": "shift",
    "spec": {
      "build": {
        "*": {
          "number": "build[&1].number",
          "branchName": {
            "master": {
              "#7.11": "build[&3].branchName"
            },
            "*": {
              "@(2, branchName)": "build[&3].branchName"
            }
          }
        }
      }
    }
  }
]
电流输出:

 {
  "build" : [ {
    "number" : "7.11.13898"
  }, {
    "number" : "7.11.13896"
  }, {
    "branchName" : "7.11",
    "number" : "7.11.13895"
  } ]
}

你快找到了。您需要将
@(2,branchName)
替换为
$
,它应该适合您

“$”运算符表示使用输入键,而不是输入值 作为输出

解决方案:

[
  {
    "operation": "shift",
    "spec": {
      "build": {
        "*": {
          "number": "build[&1].number",
          "branchName": {
            "master": {
              "#7.11": "build[&3].branchName"
            },
            "*": {
              "$": "build[&3].branchName"
            }
          }
        }
      }
    }
  }
]

非常感谢你!我在想办法解决这个问题。