Как фильтровать вложенные данные JSON без вложенных диапазонов - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть следующий код, и я пытаюсь извлечь только "цифры", используя jq.Я исследовал различные jq примеры кода.

Я пробовал другой вариант кода:

jq '.data | .numbers'

и

jq '.data | .numbers[1:3]'

, но я не могуполучить только цифры.

{
    page_size: 3,
    data: {
        numbers: {
            +18459939294: {
                state: in_service,
                features: [e911, outbound_cnam, inbound_cnam],
                features_allowed: [],
                features_denied: [],
            },
            +12018986776: {
                state: in_service,
                features: [],
                features_allowed: [],
                features_denied: [],
            },
            +12120098763: {
                state: in_service,
                features: [],
                features_allowed: [],
                features_denied: [],
            }
        },
        casquade_quantity: 3
    },
    revision: 79807405987349087540983759804,
    timestamp: 2018 - 09 - 14T17: 07: 49,
    version: x.x.x,
    node: aojflksajflkmaMmiaonfsd,
    request_id: -098230-49823049-82309,
    status: success,
}

Как получить вывод:

+18459939294
+12018986776
+12120098763

1 Ответ

0 голосов
/ 14 сентября 2018

numbers - это объект, а не просто массив ключей.Просто получите (несортированные) ключи от этого объекта.

.data.numbers | keys_unsorted[]

Возможно, вы также захотите получить необработанный вывод, поэтому обязательно добавьте переключатель -r.

...