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

JsonPath 2.7.0及以上版本Option.SUPPRESS_EXCEPTIONS失效问题

JsonPath 2.7版本SUPPRESS_EXCEPTIONS选项失效问题

升级JsonPath到2.7版本后,配置Option.SUPPRESS_EXCEPTIONS选项无法抑制JSON路径评估时的异常,以下是复现示例:

示例代码

var node = objectMapper.readTree("{\"test\" :  null}");

JsonPath.using(Configuration.builder()
    .options(Option.SUPPRESS_EXCEPTIONS).build())
    .parse(node.toString())
    .read("$.test[?(@ != null)]");

抛出异常

Filter: [?] can not be applied to primitives. Current context is: null
com.jayway.jsonpath.InvalidPathException: Filter: [?] can not be applied to primitives. Current context is: null

问题说明

该问题属于JsonPath 2.7版本的已知问题:当对空值这类原始类型应用过滤器时,SUPPRESS_EXCEPTIONS选项未按预期抑制异常。

临时解决方案

  • 提前判断节点类型:在应用过滤器前,先检查$.test是否为数组或非空对象,避免对空值/原始类型使用过滤器
  • 降级版本:暂时回退到JsonPath 2.6版本,等待官方修复该问题
  • 手动捕获异常:在代码中显式捕获InvalidPathException,自行处理异常场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 12:53:19