使用Ansible解析来自uri请求的JSON响应

时间:2017-10-24 12:01:46

标签: json parsing ansible

我想从这个带有ansible的json输出中只获取名称(nam1e,name2)

{
   "query":{
      "app":"app1",
      "env":"app2",
      "type":"app3"
   },
   "result":[
      {
         "name":"name1",
         "yyy":"xxxxxxx",
         "yyy":[
            "xxx"
         ]
      },
      {
         "name":"name2",
         "yyy":"xxxxxxx",
         "yyy":[
            "xxx"
         ]
      }
   ]
}

这是我的task.yml(url / json重新输出json输出)

uri:

  url: "url/json"
  method: GET
  force: yes
  return_content: yes
  status_code:
    - 200
    - 500
register: registered_variable

那么如何解析这个json以获取名称,我在registered_variable中注册了json输出。

1 个答案:

答案 0 :(得分:0)

这未在uri模块的文档中记录:http://docs.ansible.com/ansible/latest/uri_module.html

但是当返回有效的json时,它会被解组到结果的json键中。

我看到你已经注册了,所以你应该能够访问你想要的fild:registered_variable.json.result[0].nameregistered_variable.json.result[1].name,我不确定你是否总是期望该数组中有两个元素,所以由你来处理。