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

使用JQ解析NDPI输出JSON:匹配flow_risk动态键值的方法

匹配NDPI JSON中flow_risk动态键的JQ写法

针对NDPI输出的JSON里flow_risk字段下动态键(范围01-50)的匹配需求,这里提供几种实用的JQ写法:

1. 遍历所有键并筛选范围(键为字符串类型)

如果flow_risk下的键是带前导零的字符串(比如"01"、"35"),用正则匹配范围:

.flow_risk | to_entries[] | select(.key | test("^0?([1-9]|[1-4][0-9]|50)$")) | .value | {risk, severity}
  • to_entries[]:将对象转换为键值对数组,方便遍历每个键
  • select(...):筛选键符合01-50范围的条目(正则兼容带前导零的"01"和不带的"1")
  • .value | {risk, severity}:提取匹配条目中的risk和severity字段

2. 基于数值范围筛选(键为数字类型)

如果flow_risk下的键是纯数字(比如1、35),直接通过数值比较筛选:

.flow_risk | to_entries[] | select(.key | tonumber >= 1 and tonumber <= 50) | .value | {risk, severity}
  • tonumber:将键转换为数字类型,方便做范围判断
  • 其余逻辑和第一种方法一致

3. 将结果整理为数组

如果需要把所有匹配的结果整合到一个数组中,在表达式外层加[]即可:

[.flow_risk | to_entries[] | select(.key | tonumber >= 1 and tonumber <= 50) | .value | {risk, severity}]

4. 保留原键结构的写法

如果想保留原键(比如"35")和对应的risk、severity,用with_entries处理:

.flow_risk | with_entries(select(.key | tonumber >=1 and tonumber <=50) | .value |= {risk, severity})

内容的提问来源于stack exchange,提问作者AJM.MARTINEZ

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:12:03