【发布时间】:2021-03-16 18:59:31
【问题描述】:
我正在尝试使用杰克逊库 ObjectMapper 评估 json 字符串。我添加了 jackson-annotaion 、jackson-databind 和 jackson-core 依赖项,其中 相同版本 pom.xml 文件也是。但是代码给出了以下错误。我检查了类似的问题,但我没有像他们的情况那样版本不匹配。
Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/annotation/JsonView
at com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector.<clinit>(JacksonAnnotationIntrospector.java:37)
at com.fasterxml.jackson.databind.ObjectMapper.<clinit>(ObjectMapper.java:348)
at com.company.EvaluateJson.evaluate(EvaluateJson.java:49)
at com.company.DataMapper.doMapping(DataMapper.java:58)
at com.company.DataMapper.getRequest(DataMapper.java:49)
at com.company.Main.main(Main.java:119)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.annotation.JsonView
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 6 more
我的代码如下:
try{
ObjectMapper objectMapper=new ObjectMapper();
String jString=objectMapper.writeValueAsString(requestMap);
JsonNode jsonNode=objectMapper.readTree(jString);
System.out.println("From jsonNode:"+jsonNode.get("name"));
}catch (JsonGenerationException e){
e.printStackTrace();
}catch (JsonMappingException e){
e.printStackTrace();
}catch (IOException e){
e.printStackTrace();
}
pom.xml
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.12.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.4.0</version>
</dependency>
</dependencies>
【问题讨论】:
-
请出示你的 pom
-
@Jens 在问题中添加了 pom。
-
你给我们看的部分是
<dependencyManagement>下的吗? -
@Jens 是的。依赖项在
下 -
纯粹的外在
标签: java json jackson jackson-databind