来自json response uri - 如何使用ansible json查询过滤器提取json密钥和值并验证它们?

时间:2017-06-16 19:50:38

标签: ansible ansible-template

使用ANSIBLE:我从url获取json响应并引发响应但无法打印特定的键/值。 (请参阅json响应)在我的脚本中我会传递服务,所以我只想在标签下打印特定版本的服务。例如,我将abc作为参数传递给ansible playbook,然后我想在该Tags下打印版本。我试过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" 
            ]
        }
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

评论中的回答:

  

此处唯一可以解决的问题是您需要将json_query过滤器应用于json_response.json。至于JMESPath表达式,请花一些时间在jmespath.org找出表达式本身。