GSON没有被导入到maven项目中

我收到以下错误 – 我在我的依赖项中添加了GSon –

有人可以指出我做错了什么吗?

在此处输入图像描述

编辑:指定依赖项 –

 com.google.code.gson gson 1.7.1  

我在我的sevlet中使用以下代码 –

  JSONService json = new JSONService(); String json_output = json.makeLoginJSON(user); 

makeLoginJSON —

  public String makeLoginJSON(LoginDetails user) { String FinalJson = null; Gson gson = new Gson(); FinalJson = gson.toJson(user); return FinalJson; } 

尝试:

  com.google.code.gson gson 2.1 provided  

我编辑了我的评论并添加了范围。 默认范围是compile ,这意味着在运行时不存在依赖项。 为此,您使用提供的范围。 有关Apache的Maven依赖性简介的 maven依赖关系中的范围的更多信息。

希望这可以解决您的问题。

PS:如果你要创建自己的存储库,你也应该看看这里 。

只是澄清了劳尔的答案 – 很好,它适用于你,但提供的是预期可从JRE / JDK获得的依赖,即servlet类。 编译是默认的,并且应该适用于其他人的情况,因为gson不能从JRE获得,而是需要由maven下载。 来自http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope :

compile这是默认范围,如果未指定则使用。 编译依赖项在项目的所有类路径中都可用。 此外,这些依赖项将传播到依赖项目。

提供这与编译很相似,但表示您希望JDK或容器在运行时提供依赖关系。 例如,在为Java Enterprise Edition构建Web应用程序时,您可以将Servlet API和相关Java EE API的依赖关系设置为提供的范围,因为Web容器提供了这些类。 此范围仅在编译和测试类路径中可用,并且不可传递。

runtime此范围指示编译不需要依赖项,但是用于执行。 它位于运行时和测试类路径中,但不是编译类路径。

test此范围表示正常使用应用程序不需要依赖关系,并且仅适用于测试编译和执行阶段。

system此范围与提供的类似,只是您必须提供明确包含它的JAR。 工件始终可用,不会在存储库中查找。

import (仅在Maven 2.0.9或更高版本中可用)此范围仅用于节中pom类型的依赖项。 它表示应该用该POM部分中的依赖项替换指定的POM。 由于它们被替换,具有导入范围的依赖性实际上不参与限制依赖性的传递性。

尝试:

  com.alibaba fastjson 1.1.21  

非常快速,易于使用。

 VO obj = ...; String jsonString = JSON.toJSONString(obj); VO obj2 = JSON.parseObject(jsonString, VO.class);