Каким будет синтаксис для извлечения значения "members" из этого JSON, где значением имени является "PROD_poolgroup" - PullRequest
0 голосов
/ 12 июля 2020

Каким будет синтаксис, чтобы извлечь значение «members» из этого JSON, где значением имени является «PROD_poolgroup».

Я думаю, это должно быть [? Config.name == «PROD_poolgroup "] .config.members Я тоже безуспешно пробовал другие варианты.

"all_members": [
{
 "config": {
    "_last_modified": "1594434546441212",
    "cloud_ref": "https://192.168.86.20/api/cloud/cloud-5a7a41cb-156e-43f4-ad28-031b27dac813",
    "implicit_priority_labels": false,
    "members": [{
        "pool_ref": "https://192.168.86.20/api/pool/pool-cb436bba-000a-4d72-8ff5-7d6cdf1ac2fa",
        "ratio": 1
      }],
    "min_servers": 0,
    "name": "PROD_poolgroup",
    "tenant_ref": "https://192.168.86.20/api/tenant/admin",
    "url": "https://192.168.86.20/api/poolgroup/poolgroup-e08933c0-d142-4787-9990-45f94dfc6b89",
    "uuid": "poolgroup-e08933c0-d142-4787-9990-45f94dfc6b89"
  },
  "uuid": "poolgroup-e08933c0-d142-4787-9990-45f94dfc6b89"},
{
 "config": {
   "_last_modified": "1594404797173635",
   "cloud_ref": "https://192.168.86.20/api/cloud/cloud-5a7a41cb-156e-43f4-ad28-031b27dac813",
   "implicit_priority_labels": false,
   "members": [{
       "pool_ref": "https://192.168.86.20/api/pool/pool-f98ed65c-00b2-4638-83df-8b89df79deec",
       "ratio": 1
              }],
   "min_servers": 0,
   "name": "QA_poolgroup",
   "tenant_ref": "https://192.168.86.20/api/tenant/admin",
   "url": "https://192.168.86.20/api/poolgroup/poolgroup-0b19b515-9ae6-41ef-9111-00e61470e615",
   "uuid": "poolgroup-0b19b515-9ae6-41ef-9111-00e61470e615"},
   "uuid": "poolgroup-0b19b515-9ae6-41ef-9111-00e61470e615"
    }
    ]

1 Ответ

1 голос
/ 12 июля 2020

Используйте одинарную или обратную кавычку для использования буквального выражения для сравнения значения name. Ниже приведены два рабочих примера:

Использование одинарных кавычек:

- debug:
    msg: "{{ all_members | json_query(query) | list }}"
  vars:
    query: "[?config.name == 'PROD_poolgroup'].config.members"

Использование буквального выражения:

- debug:
    msg: "{{ all_members | json_query(query) | list }}"
  vars:
    query: '[?config.name == `"PROD_poolgroup"`].config.members'
...