You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JOLT数组转换后保留原结构:匹配参数名修改值问题

JOLT转换:匹配数组参数名并修改值(保留未匹配内容)

我正在构建JOLT转换,需要在给定数组中匹配指定参数名时修改其参数值,但当前的转换规则会删除JSON中未匹配的部分,希望保留这些内容。

示例输入

{
  "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"
                }
              }
            }
          }
        }
      }
    }
  }
]

当前转换的问题:会删除JSON中未匹配的其余内容,无法保留原结构里的非目标字段。


编辑补充

最初编写示例时遗漏了部分输入内容,感谢@Barbaros Özhan的回答帮助完成了转换。供后续参考,我的原始输入包含额外字段:

{
  "component": {
    "parameters": [
      {
        "option": "true",
        "parameter": {
          "name": "var_name",
          "description": "desc",
          "value": "val"
        }
      },
      {
        "option": "false",
        "parameter": {
          "name": "1",
          "description": "desc",
          "value": "2"
        }
      }
    ],
    "other value": "baz"
  },
  "additional": "onemore"
}

适配这些字段后,我使用的最终转换规则如下:

[
  {
    "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"
                }
              },
              "value": "&6.&5[&4].&3.value",
              "*": "&4.&3[&2].&1.&"
            },
            "*": "&3.&2[&1].&"
          }
        },
        "*": "&1.&"
      },
      "*": "&"
    }
  }
]

内容的提问来源于stack exchange,提问作者Voxeldoodle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:30:59