【问题标题】:JQ get all simple values in jsonJQ获取json中的所有简单值
【发布时间】:2020-02-07 16:08:23
【问题描述】:

我有一个包含嵌套字典的 json 结构,我想获取其中的所有简单值(字符串、整数、布尔值等,但不是字典和列表)。

如何使用 JQ 实现这一点。

例子:

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

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

10
20
"hello"
true

【问题讨论】:

    标签: json jq scalar


    【解决方案1】:

    递归,只选择标量值:

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

    【讨论】:

    • select 这里是多余的,因为scalars 已经充当了过滤器。 recurse|scalars 就足够了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多