JQ получает все простые значения в json - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть структура json, которая содержит вложенные словари, и я хочу извлечь из нее все простые значения (String, Int, bool et c, но не dict и lists).

Как можно Я добиваюсь этого, используя JQ.

Пример:

{
    "a": 10,
    "b": {
        "d": 20,
        "e": "hello"
    },
    "c": {
        "z": {
            "f": true
        }
    }
}

Ожидаемый результат не обязательно в следующем порядке:

10
20
"hello"
true

1 Ответ

2 голосов
/ 07 февраля 2020

Рекурс, выбирая только скалярные значения:

$ cat tmp.json
{
  "a": 10,
  "b": {"d": 20, "e": "hello"},
  "c": {"z": {"f": true}}
}
$ jq 'recurse | select(scalars)' tmp.json
10
20
"hello"
true
...