如何 select jq 键值长度超过数字的项目

How to select jq items where length of key value exceeds a number

我有这个 JSON 输入到 JQjq

{
  "names": [{
    "name": "John Smith"
  },{
    "name": "Jane Doe"
  },{
    "name": "Jackson Longfellow"
  }]
}

我想使用 jq select 名称长度超过 10 个字符的所有项目。这意味着输出将是:

{
  "names": [{
    "name": "Jackson Longfellow"
  }]
}

length 过滤器似乎只计算数组中的项目。是否有其他内置过滤器可用于此?

更新 |= names 数组,方法是仅 select 匹配那些项目。 length 应用于字符串将输出其长度计算 Unicode 代码点。

jq '.names |= map(select(.name | length > 10))'
{
  "names": [
    {
      "name": "Jackson Longfellow"
    }
  ]
}

Demo