JQ 获取 json 中的所有简单值

JQ get all simple values in json

我有一个包含嵌套字典的 json 结构,我想获取其中的所有简单值(String、Int、bool 等,但不是字典和列表)。

如何使用 JQ 实现此目的。

示例:

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

预期输出不一定按此顺序:

10
20
"hello"
true

递归,仅选择标量值:

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