我需要把json转换成pojo。我决定使用Jackson,并将jackson-core-2.2.0.jar、jackson-databind-2.4.4.jar和jackson-annotations-2.1.2.jar添加到项目的类路径中
我创建了Main
类:
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.DeserializationFeature;
public class Json {
private static String SRC= "";
public static void main(String[] args) {
AwardList awardList = null;
ObjectMapper mapper = new ObjectMapper();
try{
awardList = (AwardList) mapper.readValue(new URL(SRC), AwardList.class);
}catch (JsonGenerationException e){
e.printStackTrace();
} catch (JsonMappingException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
System.out.println(awardList);
}
}
AwardList
类:
public class AwardList {
private Flights[] flights;
private String[] connections;
private SaverEconomy saverEconomy;
private StandartEconomy standartEconomy;
private SaverBusiness saverBusiness;
private StandartFirst standartFirst;
private SaverFirst saverFirst;
public Flights[] getFlights() {
return flights;
}
public void setFlights(Flights[] flights) {
this.flights = flights;
}
public SaverEconomy getSaverEconomy() {
return saverEconomy;
}
public void setSaverEconomy(SaverEconomy saverEconomy) {
this.saverEconomy = saverEconomy;
}
public StandartEconomy getStandartEconomy() {
return standartEconomy;
}
public void setStandartEconomy(StandartEconomy standartEconomy) {
this.standartEconomy = standartEconomy;
}
public SaverBusiness getSaverBusiness() {
return saverBusiness;
}
public void setSaverBusiness(SaverBusiness saverBusiness) {
this.saverBusiness = saverBusiness;
}
public StandartFirst getStandartFirst() {
return standartFirst;
}
public void setStandartFirst(StandartFirst standartFirst) {
this.standartFirst = standartFirst;
}
public SaverFirst getSaverFirst() {
return saverFirst;
}
public void setSaverFirst(SaverFirst saverFirst) {
this.saverFirst = saverFirst;
}
public String[] getConnections() {
return connections;
}
public void setConnections(String[] connections) {
this.connections = connections;
}
}
我想将json转换为pojo并保存到数据库中。我一直得到以下错误:
Exception in thread "main" java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z
at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:457)
at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:379)
at Json.main(Json.java:72)
7条答案
按热度按时间n9vozmp41#
我也收到了同样的问题。我使用Maven进行依赖项管理,并且只像这样添加了jackson-databind模块的依赖项
然后我就这样解决了我显式地添加了它的传递依赖项,并在pom.xml文件中为它们中的每一个添加了相同的Jackson.version,如下所示
fsi0uk1n2#
我在Google App Engine上遇到了类似的问题。这就是我如何修复它。
我先跑:
找出谁在使用旧版本。然后我把它从令人讨厌的依赖关系中排除出来,就像这样:
接下来,我在pom.xml中添加了新版本的依赖项:
希望这能帮助那些在这里跌倒的人。
bxgwgixi3#
我也有同样的问题。jackson-version 2.6.3和另一个依赖项(graphaware-framework-embedded)之间存在一些不兼容性。
t1qtbnec4#
截至目前,最新redisson
最新的Jackson.版本属性是
2.11.2
对我来说更新Eclipse引用,如果没有此运行程序,则将访问Jackson项目的早期版本。
u91tlkcl5#
我刚刚在将我的项目从spring 3升级到4.1.6时遇到了同样的问题。
一个小的背景参考,以防万一,如果它有助于任何人遇到同样的问题=>首先,它提示我与错误mappingJacksonconverter与mappingJackson 2converter,因为前者不存在了Spring4。一旦我在代码中更改了这些引用,我就遇到了调度器servlet的问题,因为它有spring 3支持的xsd定义。一旦这一点得到纠正,我在旅程中的最后一步是这个错误,你们都面临着以及。
我的解决方案:我有以下jar的旧版本:jackson-annotations,jackson-core,jackson-databind,jackson-core-asl,jackson-mapper-asl
我将前3个jar升级到2.10.0.pr1版本,最后2个升级到1.9.13版本。
我还有一个更老的jar,也就是我不得不删除的com.fasterxml.jackson.core.jar。无论如何,正如错误表明这是不匹配的关键原因(就像Tobias在我之前的评论中所说的那样)
我认为只有最后一段是重要的,从这个特定的问题的Angular 来看,但我希望我的叙述所面临的问题,导致这可能有助于有人节省4-5小时:)干杯,乡亲!
4xrmg8kj6#
对我来说,我更新了版本到最近发布的版本,即。2.12.4它运行良好。
注意:我使用的是Eclipse中一个更大项目的构建路径中的另一个项目。Jackson更新是在较小项目的pom.xml文件中完成的。
wwwo4jvm7#
由于旧版本的漏洞,我已经将maven项目中的Jackson依赖版本从2.7.4更新为2.15.0。更新后,我得到一个异常NoClassDefFoundError。我尝试使用JacksonBOM 2.15.0,但仍然得到该异常。如何解决此异常?