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

升级Json-path至2.8版本后出现JSONParser等类型无法解析编译错误

问题原因及解决方案

问题根源

json-path 2.8.0版本对依赖管理做了调整:原本作为compile级别的net.minidev:json-smart依赖(你的代码中JSONObject、JSONParser类就来自这个包),被改为了provided scope。这意味着主代码编译时Maven不会自动引入该依赖,而测试代码因为json-path的测试依赖链中默认包含了这个库,所以不受影响。

解决方案

方案1:显式添加json-smart的compile依赖

在你的pom.xml中手动加入net.minidev:json-smart的compile依赖,版本可与json-path 2.8.0匹配的版本保持一致(推荐用2.4.11,这是json-path 2.8.0默认依赖的版本):

<dependency>
    <groupId>net.minidev</groupId>
    <artifactId>json-smart</artifactId>
    <version>2.4.11</version>
    <scope>compile</scope>
</dependency>

方案2:改用json-path原生API替代直接依赖json-smart

如果不想额外引入依赖,可以调整代码,使用json-path自身的API来解析JSON,避免直接使用net.minidev.json下的类:

import com.jayway.jsonpath.JsonPath;
import com.jayway.jsonpath.ReadContext;
import java.util.Map;

public static Map<String, Object> convertJSONStr2Obj(String jsonStr) {
    ReadContext ctx = JsonPath.parse(jsonStr);
    return ctx.read("$"); // 读取整个JSON对象,返回Map类型(与JSONObject本质一致)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 13:42:36