如何使用 jq 提取大括号内的第一个字符串,同时忽略小节括号?

问题描述 投票:0回答:1

示例 data.json 文件:

{
    "JSON_KEY": { 
        "SOME_TITLE": {
            "RANDOM_STRING1": {
                "label": "value",
                "units": {
                    "subunits": [
                         {"item1": "1", "item2": "2"},
                         {"item3": "3", "item4":"4"}
                    ]
                }
            }
        }
    }
}

想象一下这个结构。 RANDOM_STRING1 是文件中的第一个随机字符串,其中包含数百个甚至数千个随机字符串。这里只有一个 JSON 密钥。

我尝试搜索,找到的最接近的命令让我使用了以下命令,该命令是从另一个 stackoverflow 帖子中找到的。该命令将剥离第一部分并留下 RANDOM_STRING。但是,它包括所有子组件。

jq -r '.[] | [.[]]' data.json

结果:

[
  {
    "RANDOM_STRING1": {
      "label": "value",
      "units": {
        "subunits": [
          {
            "item1": "1",
            "item2": "2"
          },
          {
            "item3": "3",
            "item4": "4"
          }
        ]
      }
    }
  }
]

我需要下一步来剥离每个 RANDOM_STRING 的子组件,留下所有 RANDOM_STRING 实例的列表。

如何使用 jq 完成此任务?

json jq
1个回答
0
投票

显然你正在拍摄:

jq -r '.[][] | keys_unsorted[]'

或者也许:

jq -r '[.[][] | keys_unsorted[]]'
© www.soinside.com 2019 - 2024. All rights reserved.