对于类型JsonParser,未定义方法parseStringString

问题描述

我的代码以前运行良好,但是现在抛出了异常,

代码:

    Gson gson = new GsonBuilder().setPrettyPrinting().create();
            JsonElement jsonElement = JsonParser.parseString(resultJsonString);

以及JsonElement jsonElement = JsonParser.parseString(resultJsonString);

行中的异常
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
    The method parseString(String) is undefined for the type JsonParser

有人暗示为什么会这样吗?到昨天为止一切都很好!

解决方法

这看起来更像是您为自己的班级命名的方式与Gson JsonParser班级的命名方式相同。因此,编译器将JsonParser解析为您自己的类(your.package.JsonParser)而不是Gson JsonParser (com.google.gson.JsonParser)。您可能想重命名您的班级,或者每次想引用该班级时都使用com.google.gson.JsonParser而不是JsonParser

另一种可能性是您使用的Gson库可能早于version 2.8.6。在这种情况下,您必须升级Gson库。在JsonParser.parseString中添加了静态方法version 2.8.6。检出change log

对于 Maven ,请使用:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.6</version>
</dependency>

对于 Gradle ,请使用:

compile group: 'com.google.code.gson',name: 'gson',version: '2.8.6'

对于 SBT ,使用:

libraryDependencies += "com.google.code.gson" % "gson" % "2.8.6"

对于常春藤,请使用:

<dependency org="com.google.code.gson" name="gson" rev="2.8.6"/>

对于葡萄,请使用:

@Grapes(
    @Grab(group='com.google.code.gson',module='gson',version='2.8.6')
)

对于莱宁根,请使用:

[com.google.code.gson/gson "2.8.6"]

对于 Builder ,请使用:

'com.google.code.gson:gson:jar:2.8.6'

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...