如何使用jq判断JSON中指定键不存在时返回true存在时返回false
jq 实现JSON指定键存在性判断的查询方案
可用查询语句
直接执行如下jq命令即可实现需求:
jq 'has("blacklisted_library_found") | not'
逻辑解释
has("blacklisted_library_found")是jq内置的键判断方法,作用是检测输入的JSON对象顶层是否存在指定名称的键:键存在时返回true,键不存在时返回false。这个判断不会受键对应值的类型、内容影响,哪怕对应值是空数组、null,都能准确识别键是否存在,不会出现误判。- 管道符后接的
not作用是将前一步返回的布尔值取反,刚好匹配要求的判断规则:JSON中不存在blacklisted_library_found键时返回true,存在该键时返回false。
场景匹配验证
- 传入未检测到黑名单库、无
blacklisted_library_found键的第一类JSON结构时,命令返回true - 传入检测到黑名单库、包含
blacklisted_library_found键的第二类JSON结构时,命令返回false
内容的提问来源于stack exchange,提问作者eramm
相关产品推荐
相关产品推荐

