示例 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 完成此任务?
显然你正在拍摄:
jq -r '.[][] | keys_unsorted[]'
或者也许:
jq -r '[.[][] | keys_unsorted[]]'