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

如何在Ansible中使用子集JSON增量更新已有JSON且不覆盖原有字段

问题原因

Ansible 的 combine 过滤器默认仅合并顶层字典,嵌套层级的字典会被新传入的值直接覆盖,因此你当前的写法会直接替换整个version字段,导致其他原有字段丢失。

修复方案

给 combine 过滤器添加 recursive=True 参数,开启递归嵌套合并,即可仅覆盖你指定的字段,保留其余所有原有字段。

修改后的 debug 任务写法如下:

- debug:
    msg: "{{ responseurl | combine({'json':{'body':{ 'version':{'minorEdit':true, 'number':responseversion.json.results[0].version.number+1} }}}, recursive=True) }}"
验证说明

开启递归合并后:

  • 仅 version 下的 minorEdit 和 number 两个字段会被更新
  • version 下的 _expandable、_links、by 等其余字段完整保留
  • version 外层的所有层级字段不会被修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:30:02