如何 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"
}
]
}
我有这个 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"
}
]
}