Gradle项目中JsonPath.read方法无法解析问题求助
解决JsonPath.read()方法无法解析的问题
兄弟,你这问题根源其实很简单——你导错类了!
你在build.gradle里加的是Jayway的json-path依赖,但代码里导入的却是Spring的org.springframework.data.web.JsonPath,这俩完全是不同的东西:
- Spring的
JsonPath是个注解,用来做Spring MVC的参数绑定,根本没有read()方法; - 你真正需要的是Jayway提供的
com.jayway.jsonpath.JsonPath工具类,它才包含静态的read()方法用来解析JSON。
给你几个分步解决的方案:
1. 修正导入语句
把代码里的导入改成:
import com.jayway.jsonpath.JsonPath;
这是最直接的解决办法,确保你调用的是依赖库对应的类。
2. 强制刷新Gradle依赖
如果之前的依赖同步有问题,执行以下命令强制刷新缓存(根据系统选对应的命令):
- Mac/Linux:
./gradlew build --refresh-dependencies - Windows:
gradlew.bat build --refresh-dependencies
3. 清理IDE缓存(如果还是报错)
有时候IDE缓存会抽风,除了重启,还可以手动清理:
- IntelliJ IDEA:
File -> Invalidate Caches... -> 选择Invalidate and Restart - Eclipse:
Project -> Clean... -> 选择你的项目然后Clean
额外提示:类名冲突的处理
如果你项目里确实需要同时用到Spring的JsonPath注解和Jayway的工具类,可以用全限定名调用方法,避免混淆:
com.jayway.jsonpath.JsonPath.read(jsonStr, "key1.key2.key3.key4")
内容的提问来源于stack exchange,提问作者kaido
相关产品推荐
相关产品推荐

