从json响应uri-如何提取json键和值,并使用ansible json查询过滤器验证它们?
使用ANSIBLE:我从url获取json响应并获取响应,但无法打印特定的键/值。(请参阅json响应)在我的脚本中,我将传递服务,因此我只想在标记下打印特定版本的服务。例如,我将abc作为参数传递给ansible playbook,然后我想在该标签下打印版本。我尝试了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
- 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,我可以解决这个问题。真心感谢你的指导,让我来解决这个问题。