【问题标题】:Extract JSON array based on subarray length?根据子数组长度提取JSON数组?
【发布时间】:2026-01-14 03:10:02
【问题描述】:

给定

{
    "result": {
        "spaces": [{
            "priceschema": {
                "prices": [{
                    "costs": [{
                        "amount": "3"
                    }]
                }]
            }
        }]
    }
}

我想显示所有具有多个成本的prices。我提出了以下 jq 查询,但它返回所有成本,即使是具有单个元素的成本。

{price: .result.spaces[].priceschema.prices[]?} | select((.price.costs[] | length) > 1)

请注意,pricescosts 可能不存在。

【问题讨论】:

标签: json jq


【解决方案1】:

由于您没有给出显示所需输出格式的示例,我只能建议如下:

.result.spaces[].priceschema.prices[]
| {price: .}
| select((.price.costs? | length) > 1)

希望这将引导您找到您正在寻找的答案。

【讨论】:

  • 我不希望基于prices 长度,而是costs 长度。您的select 查询不正确
  • 请按照minimal reproducible example修改你的Q。请确保示例内容丰富。
  • 问题已经够清楚了;如果你不读,我无能为力。并非每个问题都需要 MCV。
  • 这个问题你可能很清楚,但这并不意味着其他人也清楚。事实上,我可以向你展示至少两种似是而非的解释。该示例也没有提供信息,甚至没有显示任何情况下所需的答案格式。今后,请遵守 MCVE 指南。他们在那里是有原因的。