【问题标题】:How to select jq items where length of key value exceeds a number如何选择键值长度超过数字的jq项目
【发布时间】:2022-01-27 22:07:14
【问题描述】:

我有这个 JSON 输入到 JQjq

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

我想使用 jq 来选择名称长度大于 10 个字符的所有项目。这意味着输出将是:

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

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

【问题讨论】:

    标签: json select jq


    【解决方案1】:

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

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

    Demo

    【讨论】:

    • 完美!谢谢。
    猜你喜欢
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-13
    • 1970-01-01
    相关资源
    最近更新 更多