若要从JSON数据中选择所需的内容,可以使用Ansible的“json_query”过滤器。以下示例演示如何使用该过滤器在Ansible Playbook中选择所需的数据:
- name: Select required data from JSON
hosts: localhost
vars:
my_json:
{
"employees": [
{
"name": "John",
"age": 30,
"department": "IT"
},
{
"name": "Sarah",
"age": 35,
"department": "HR"
},
{
"name": "Tom",
"age": 25,
"department": "Sales"
}
]
}
tasks:
- name: Select employee names and departments
debug:
msg: "{{ my_json | json_query('employees[*].{name: name, department: department}') }}"
在此示例中,我们使用JSON数据“my_json”中的“employees”数组,并使用“json_query”过滤器选择员工的名称和部门。使用字符串“'employees[*].{name: name, department: department}'”作为参数,该字符串是JMESPath语法的一部分。选定的内容将作为一条消息打印出来。
我们可以使用类似的方法来查询其他类型的JSON数据,并根据需要使用更复杂的过滤器表达式。