You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

请求明确jq中boolean_expression的精确定义及判定规则

jq中select过滤器的boolean_expression精确定义

jq手册里提到的select过滤器所需的boolean_expression,并非要求严格的布尔类型值,而是遵循jq内置的真值判断规则:只有false和null会被判定为“假”,所有其他类型的值(包括0、负数、非空字符串、对象、数组等)全部被判定为“真”。

结合你给出的示例,对应规则的表现如下:

  • jq -n '1,2 | select(null)':null被判定为假,无输出
  • jq -n '1,2 | select(empty)':empty会生成零个值,相当于没有符合条件的输入,无输出
  • jq -n '1,2 | select(42)':数值42被判定为真,保留输入的1和2
  • jq -n '1,2 | select(-1.23)':负数-1.23被判定为真,保留输入的1和2
  • jq -n '1,2 | select({a:"strange"})':非空对象被判定为真,保留输入的1和2
  • jq -n '1,0,-1,null,false,42 | select(.)':select(.)用输入值自身做判断,0、-1、1、42均为真,null和false为假,最终输出1 0 -1 42

内容的提问来源于stack exchange,提问作者jpseng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:01:41