【问题标题】:How to extract all (also nested) key names with jq如何使用 jq 提取所有(也嵌套的)键名
【发布时间】:2017-10-04 12:19:26
【问题描述】:

如何提取所有键名,即使在带有 jq 的嵌套对象中? 比如我有json:

{ "a": 1, "b": { "c": 2 } }

我想得到列表: a, b, b.c

我知道对于顶级密钥,我可以通过以下方式获得: . | to_entries[] | .key,但是嵌套对象中的键呢?

【问题讨论】:

    标签: json jq


    【解决方案1】:

    jq解决方案:

    jq -r '[paths | join(".")]'  jsonfile
    

    输出:

    [
      "a",
      "b",
      "b.c"
    ]
    

    • paths 函数输出其输入中所有元素的路径

    • join(".") - 连接分层路径中的键

    【讨论】:

    • 哇,它是如此简单,我很高兴,我已经问过了,谢谢。我只会添加它以避免错误:“字符串(“。”)和数字(0)不能添加“当json中有数组时应该添加映射到字符串:paths | map(.|tostring)|join(".")
    猜你喜欢
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 2017-11-10
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    相关资源
    最近更新 更多