我正在尝试找到一种方法来解析下面的 json 并获取所有具有 "type": "location"
的项目的 city
列表。挑战是我并不总是知道关键名称,例如 us
、john
和 location1
以及 下面示例中的 >location2
。我尝试使用 json_query 和 regex_search 但没有成功。
{
"client": {
"us": {
"john": {
"job": {
"type": "job",
"job": "waiter"
},
"location1": {
"type": "location",
"address": {
"street": "Main St",
"city": "Seattle"
}
},
"location2": {
"type": "location",
"address": {
"street": "2nd ave",
"city": "New York"
}
}
}
}
}
}
最佳答案
给定变量my_data
以下任务
- debug:
msg: "{{ my_data|
json_query(query1)|
flatten|
json_query(query2)
}}"
vars:
query1: "*.*.*.*"
query2: "[?type=='location'].address.city"
给出列表
"msg": [
"Seattle",
"New York"
]
很可能这些查询可以串联。
关于json - 使用 Ansible 查找 JSON 中的值,而无需知道它在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63832681/