从json响应uri-如何提取json键和值,并使用ansible json查询过滤器验证它们?

从json响应uri-如何提取json键和值,并使用ansible json查询过滤器验证它们?,ansible,ansible-template,Ansible,Ansible Template,使用ANSIBLE:我从url获取json响应并获取响应,但无法打印特定的键/值。(请参阅json响应)在我的脚本中,我将传递服务,因此我只想在标记下打印特定版本的服务。例如,我将abc作为参数传递给ansible playbook,然后我想在该标签下打印版本。我尝试了json查询过滤器,但无法获得此结果 - name: Get url response uri: url: http://localhost:8500/myurl... return_content: yes

使用ANSIBLE:我从url获取json响应并获取响应,但无法打印特定的键/值。(请参阅json响应)在我的脚本中,我将传递服务,因此我只想在标记下打印特定版本的服务。例如,我将abc作为参数传递给ansible playbook,然后我想在该标签下打印版本。我尝试了json查询过滤器,但无法获得此结果

- name: Get url response
  uri:
    url: http://localhost:8500/myurl...
    return_content: yes
  register: json_response

- name: print json_response
  debug:
    var: json_response

- name: print the response
  set_fact:
    msg: "{{ json_response | from_json| json_query('Tags['build=*')}}"
我的json响应如下

"json": {
        "abc": {
            "Tags": [
                "version=3.5"
            ]
        }, 
        "xyz": {
            "Tags": [
                "version=4.6.2" 
            ]
        }, 
        "asd": {
            "Tags": [
                "version=9.1.2" 
            ]
        }
}

任何帮助都将不胜感激

从评论中回答:


ansible在这里的唯一一点是,您需要对
json\u response.json
应用
json\u query
过滤器。至于JMESPath表达式,请花一些时间来了解表达式本身


我认为ansible可能会有所帮助这里唯一的一点是,您需要将
json\u query
过滤器应用于
json\u response.json
。至于JMESPath表达式,请花点时间来弄清楚表达式本身。@KonstantinSuvorov谢谢。这个链接非常有用。现在我可以得到精确的值了。谢谢@KonstantinSuvorov,我可以解决这个问题。真心感谢你的指导,让我来解决这个问题。