【问题标题】:JQ: accessing element no matter how many levels deepJQ:访问元素无论多少层深
【发布时间】:2019-03-06 16:20:28
【问题描述】:

给定文件test.json

{
  "file": {
    "id": "123456789",
    "name": "137.txt"
  },
  "lines": 219,
  "characters": 2456
}

我想从命令行使用 JQ 访问元素 name

键入 jq .file.name test.json 会生成 137.txt。完美!

不幸的是,我们真正的 json 结构要大得多,输入元素的完整路径可能会很痛苦。

是否可以在不输入完整路径的情况下检索name 的值? jq *.name test.json 之类的东西,* 是通配符?

提前感谢您的帮助!

奥拉夫

【问题讨论】:

    标签: json nested jq


    【解决方案1】:

    一种方法是使用.. 进行深度递归以尽可能深入并且如果该值存在并且为空

    jq '.. | .name? | select(. != null)'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2021-11-23
      • 2022-01-06
      • 2016-07-13
      • 2021-02-06
      • 1970-01-01
      • 2017-01-26
      相关资源
      最近更新 更多