我正在尝试将json字符串转换为java对象,但遇到错误。
线程"main“中出现异常: com/fasterxml/jackson/annotation/JsonInclude$Value at com.fasterxml.jackson.databind.cfg.MapperConfig.(MapperConfig.java:45) at com.fasterxml.jackson.databind.ObjectMapper.(ObjectMapper.java:535) at com.fasterxml.jackson.databind.ObjectMapper.(ObjectMapper.java:452) at com.allianz.cmis.util.ApacheHttpClientGet.main(ApacheHttpClientGet.java:65)
java.lang.NoClassDefFoundError by: java.lang.ClassNotFoundException:com.fasterxml.jackson.annotation.JsonInclude$Value 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 string {'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;
}
}
Java代码
ObjectMapper mapper = new ObjectMapper(); List<Fields> list = mapper.readValue(output, TypeFactory.defaultInstance().constructCollectionType(List.class,Fields.class)); System.out.println(list);
发布于 2016-06-13 04:21:16
把这段代码添加到你的pom.xml中怎么样
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${jackson.version}</version>
</dependency>
发布于 2017-09-25 21:08:20
Jackson编组/解组需要遵循相同版本的jar文件。
确保在类路径中添加了具有相同版本的所有这些文件。在您的示例中,类路径中缺少jackson-annotations。
发布于 2016-04-20 23:42:23
我也有同样的错误信息。在我的例子中,Jackson由多个JAR文件组成。不幸的是,他们有不同版本的jackson-core和jackson-annotations,这导致了上面的异常。
也许您的类路径中没有jackson-annotation JAR,至少在正确的版本中没有。您可以使用命令mvn dependency:tree
分析所使用的库版本。
https://stackoverflow.com/questions/35569092
复制相似问题