use*_*126 34 java jackson wordpress-json-api
我试图将我的json字符串转换为java对象,我收到错误
线程"main"中的异常java.lang.NoClassDefFoundError:com/fasterxml/jackson/annotation/JsonInclude $ com,位于com.fasterxml.jackson的com.fasterxml.jackson.databind.cfg.MapperConfig.(MapperConfig.java:45). com.fasterxml.jackson.databind.ObjectMapper.(ObjectMapper.java:452)中的databind.ObjectMapper.(ObjectMapper.java:535)位于com.allianz.cmis.util.ApacheHttpClientGet.main(ApacheHttpClientGet.java:65)引起的:java.lang.ClassNotFoundException:com.fasterxml.jackson.annotation.JsonInclude $ java at java.net.URLClassLoader $ 1.run(URLClassLoader.java:366)at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:354)at java.lang.ClassLoader.loadClass(ClassLoader.java:425)at sun.misc.Launcher $ AppClassLoader .loadClass(Launcher.java:308)at java.lang.ClassLoader.loadClass(ClassLoader.java:358)... 4更多
这是我的json字符串和我的代码片段
json字符串
{'ctpnsw': [{'abc' , 'def' }]}
模型
public class Fields {
private List<String> ctpnsw;
public List<String> getCtpnsw() {
return ctpnsw;
}
public void setCtpnsw(List<String> ctpnsw) {
this.ctpnsw = ctpnsw;
}
}
Run Code Online (Sandbox Code Playgroud)
Java代码
ObjectMapper mapper = new ObjectMapper();
List<Fields> list = mapper.readValue(output, TypeFactory.defaultInstance().constructCollectionType(List.class,Fields.class));
System.out.println(list);
Mon*_*ded 33
如何将其添加到您的pom.xml中
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
Vin*_*ino 21
Jackson marshalling/unmarshalling需要以下相同版本的jar文件.
杰克逊核心
杰克逊 - 数据绑定
杰克逊的注解
确保在类路径中添加了所有这些版本相同的版本.在你的情况下,类路径中缺少jackson-annotations.
Mar*_* K. 20
我有相同的错误消息.就我而言,杰克逊包含多个JAR文件.可悲的是,他们有不同版本的jackson-core和jackson-annotations导致了上述异常.
也许你的类路径中没有jackson-annotation JAR,至少在正确的版本中没有.您可以使用该命令分析使用的库版本mvn dependency:tree.
Sau*_*abh 13
我有不同版本的注释 jar。将所有 3 个 jar 更改为使用相同版本的数据绑定、注释和核心 jackson jar
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.6</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
小智 7
即使这个答案为时已晚,我还是添加了它,因为我也经历了可怕的时间来找到同一件事的答案。唯一不同的是,我在努力使用AWS Comprehend Medical API。
目前,我正在编写此答案,如果任何人在使用任何AWS开发工具包时都遇到相同的问题,请将jackson-annotaions或任何jackson依赖项降级到2.8。*版本。 由于某些原因,最新的2.9。*版本无法与AWS SDK一起正常使用。任何人都有其背后的原因有任何想法,请在下面随意评论。
以防万一有人懒于google maven repos,我已经链接了必要的repos.Check他们!
小智 5
我也遇到了类似的问题,通过参考上述解决方案,我能够解决该问题。
所有依赖项必须具有相同的版本。
以下是pom.xml文件中添加的依赖项
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.8.7</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.7</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)