Ansible使用json_query解析RunCloud API JSON结果失败排查
问题排查与修复
你的Playbook里有两个关键错误导致json_query返回空结果:
1. 路径层级错误
page.results里的每个条目,API返回的name和ipAddress字段都嵌套在json子对象下(从你Debug看到的结果可确认),但你的JMESPath表达式直接从result根节点取字段,自然找不到数据。
2. 字段名拼写错误
API返回的字段是ipAddress(小写i开头),但你写的是IpAddress(大写I),JMESPath对大小写敏感,这也会导致匹配失败。
修正后的Playbook片段
- name: Show Name and IP debug: msg: "{{ page.results | json_query(info) }}" vars: info: "[*].{Name: json.name, IP: json.ipAddress}"
额外优化建议
- 你定义的
batatas变量可以简化,uri模块默认支持Accept: application/json,如果API不需要强制指定,这个set_fact步骤可以省略 body_format: json在GET请求中不需要,可以移除
内容的提问来源于stack exchange,提问作者Édnei Rodrigues
相关产品推荐
相关产品推荐

