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

如何在Ansible中解析JSON并关联角色与对应业务影响

解析Ansible中的JSON响应:关联角色与业务影响

你可以通过两种方式实现需求,以下是具体方案:

方法一:使用Ansible原生过滤器链

通过subelements过滤器拆分每个条目下的角色列表,再结合combine将业务影响与角色信息合并:

- name: 解析带业务影响的角色信息
  set_fact:
    role_name: "{{ api_response.json | json_query('[].{roles: serverdb_roles, impact: business_impact}') | subelements('roles') | map('combine', {'role': item.1.name, 'impact': item.0.impact}) | list }}"

- name: 打印角色及对应影响
  debug:
    var: role_name

方法二:使用json_query直接生成目标结构

利用JSONPath的父级引用^,直接从原JSON中提取并组合所需字段:

- name: 用json_query解析角色与业务影响
  set_fact:
    role_name: "{{ api_response.json | json_query('[].serverdb_roles[].{role: name, impact: ^.business_impact}') }}"

- name: 打印角色及对应影响
  debug:
    var: role_name

两种方法执行后,都会生成你需要的格式:

[
    {
        "impact": "low",
        "role": "apigwsearch"
    },
    {
        "impact": "high",
        "role": "bplatformsearch"
    },
    {
        "impact": "high",
        "role": "devbplatformsearch"
    }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 01:38:21