Java 将Jackson从org.codehaus.Jackson升级到com.fasterxml.Jackson(版本1.9.13-->;2.9.8)

Java 将Jackson从org.codehaus.Jackson升级到com.fasterxml.Jackson(版本1.9.13-->;2.9.8),java,jackson,jackson-databind,Java,Jackson,Jackson Databind,在我们的代码中,我们将org.codehaus.jackson导入到java文件中。现在我们转到com.fasterxml.jackson 平滑升级需要考虑哪些要点?从jackson-1.X升级到jackson 2.X 将依赖项从jackson-core-asl-1.X.jar和jackson-mapper-asl-1.X.jar更新为jackson-annotations.jar、jackson-core.jar和jackson-databind.jar 修复从org.codehaus.jac

在我们的代码中,我们将org.codehaus.jackson导入到java文件中。现在我们转到com.fasterxml.jackson


平滑升级需要考虑哪些要点?

从jackson-1.X升级到jackson 2.X

  • 将依赖项从jackson-core-asl-1.X.jar和jackson-mapper-asl-1.X.jar更新为jackson-annotations.jar、jackson-core.jar和jackson-databind.jar
  • 修复从org.codehaus.jackson导入到com.fasterxml.jackson的问题
  • get方法名称更改为直接名称

    例如:

    jackson-1.X方法:getBooleanValue()、getFields()、getElements()、getIntValue()

    jackson-2.X方法:booleanValue()、fields()、elements()和intValue()


  • 以下是Jackson 1.9.x和Jackson 2.9.8之间的一些变化
    1.org.codehaus.jackson改为com.fasterxml.jackson
    2.org.codehaus.jackson.map更改为com.fasterxml.jackson.databind
    3.SerializationConfig.Feature已更改并已转换为SerializationFeature,MapperFeature
    4.DeSerializationConfig.Feature已更改并拆分为DeSerializationFeature,MapperFeature
    5.AnnotationIntrospector.Pair更改为AnnotationIntrospectorPair
    6.SerializationConfig.withAnnotationIntrospectro(…)已更改为SerializationConfig.withAnnotationIntrospectro(…)
    7.ObjectMapper.getSerilizationConfig().AddMixinNotations(…)已更改为ObjectMapper.addMixIn(…)
    8.JSonSerialize.include更改为JSonInclude

    9ObjectMapper.readValue(JSonNode,…)更改为OjObjectMapper.readValue(ObjectMapper.treeAsTokens(JSonNode),…)

    我想在@Ravi的回答中再补充一点

    在jackson-databind-2.9.8中,默认情况下java.sql.Date将序列化为数字时间戳,而不是。当预期日期格式为STDATEFORMAT时,这将特别导致问题

    java.sql.Date 根据databind#219 java.sql.Date最终将使用与java.util.Date和java.util.Calendar相同的“时间戳或字符串”确定。这意味着使用普通的、未更改的设置,值将被序列化为数字时间戳。请注意,默认字符串序列化仍然默认为java.sql.Date.String(),而不是java.util.Date使用的默认格式


    我不知道是谁和为什么。你的帖子很有趣。就我而言,我给你+1;)