【问题标题】:JOLT Keep structure after array shiftJOLT 在数组移位后保持结构
【发布时间】:2022-12-22 19:58:59
【问题描述】:

我试图构建一个 JOLT 转换,如果参数名称在给定数组中匹配,它将更改参数值。
示例输入:

{
  "component": {
    "parameters": [
      {
        "parameter": {
          "name": "var_name",
          "value": "val"
        }
      },
      {
        "parameter": {
          "name": "1",
          "value": "2"
        }
      }
    ]
  },
  "additional": "onemore"
}

期望的输出:

{
  "component": {
    "parameters": [
      {
        "parameter": {
          "name": "var_name",
          "value": "new_val"
        }
      },
      {
        "parameter": {
          "name": "1",
          "value": "2"
        }
      }
    ]
  },
  "additional": "onemore"
}

我当前的 JOLT 变换:

[
  {
    "operation": "shift",
    "spec": {
      "component": {
        "parameters": {
          "*": {
            "parameter": {
              "name": {
                "var_name": {
                  "#new_val": "&6.&5[&4].&3.value"
                }
              }
            }
          }
        }
      }
    }
   }
]

我的 JOLT 转换的问题是它删除了 Json 的其余部分,而如果没有匹配,我想保持不变

我尝试寻找解决方案,但我得到的最接近的是this one,它允许我进行当前转换,但我不明白如何正确修复它。

【问题讨论】:

    标签: json transformation jolt


    【解决方案1】:

    您可以使用此移位转换规范

    [
      {
        "operation": "shift",
        "spec": {
          "component": {
            "parameters": {
              "*": {
                "parameter": {
                  "name": {
                    "@": "&5.&4[&3].&2.&1",
                    "var_name": {
                      "#new_val": "&6.&5[&4].&3.value"
                    },
                    "*": {
                      "@(2,value)": "&6.&5[&4].&3.value"
                    }
                  }
                }
              }
            }
          },
          "*": "&"
        }
      }
    ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      • 1970-01-01
      • 2017-02-15
      • 2022-08-17
      • 1970-01-01
      • 2019-08-22
      • 1970-01-01
      相关资源
      最近更新 更多