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

时间:2019-04-29 04:04:35

标签: java jackson jackson-databind

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

平滑渐变需要考虑哪些要点?

3 个答案:

答案 0 :(得分:0)

以下是在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.with(...)
7. ObjectMapper.getSerilizationConfig()。addMixInAnnotations(...)更改为ObjectMapper.addMixIn(....)
8. JSonSerialize.include更改为JSonInclude
9. ObjectMapper.readValue(JSonNode,...)更改为OjbjectMapper.readValue(ObjectMapper.treeAsTokens(JSonNode),...)

答案 1 :(得分:0)

我想在@Ravi的答案中再加一点。

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

Refer release notes

  

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

答案 2 :(得分:-1)

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

  1. 将jackson-core-asl-1.X.jar和jackson-mapper-asl-1.X.jar的依赖关系更新为jackson-annotations.jar,jackson-core.jar和jackson-databind.jar < / li>
  2. 修复从 org.codehaus.jackson com.fasterxml.jackson
  3. 的导入
  4. get 方法名称更改为直接名称

    例如:

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

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