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

如何在YAML中将数组元素设为变量并复用后覆盖指定字段

YAML锚点复用并覆盖指定字段的正确写法

要实现复用锚点对象并仅覆盖parameters字段,你需要使用YAML的**合并键(Merge Key)**语法<<: *锚点名,它能将锚点对应的映射内容合并到当前映射中,之后定义的同名字段会自动覆盖锚点里的原有值。

正确的YAML写法

elements:
  - &element-object
    name: common element
    type: common type
    parameters:
      param1: val1
      param2: val2

  - <<: *element-object
    parameters:
      param1: val3
      param2: val4

验证转换结果

用yq -p yaml -o json file.yaml转换后的JSON如下,可见第二个元素成功复用了name和type字段,同时覆盖了parameters:

{
  "elements": [
    {
      "name": "common element",
      "type": "common type",
      "parameters": {
        "param1": "val1",
        "param2": "val2"
      }
    },
    {
      "name": "common element",
      "type": "common type",
      "parameters": {
        "param1": "val3",
        "param2": "val4"
      }
    }
  ]
}

原理说明

  • <<: *element-object的作用是把锚点element-object的所有键值对导入当前映射
  • 后续定义的parameters会覆盖锚点中原本的parameters字段,这是YAML映射中“后定义的键覆盖先定义的同键”的规则决定的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:58:13