Jackson自定义的字段,而使用默认的字段的其他字段?

hujrc8aj  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(73)

我需要反序列化一个JSON,它有一个字段到另一个字段。
例如,这里是JSON,我希望将属性oldField转换为DataModel中的字段newField

{
   // Some other fields are not shown
   "oldField": {
       "foo": "Some value"
   }
}
class DataModel {
  // Some other fields are not shown
  NewField newField;
}

class NewField {
  String foo;
}

原因是因为JSON是从已更改的旧数据模型反序列化的,即在DataModel类中,oldField被重命名为newField。我可以为DataModel类编写一个自定义的解析器,但这意味着我必须手动解析除newField之外的所有其他字段。
有没有一种方法,我可以只为我感兴趣的字段提供自定义验证,而将其他事情留给Jackson提供的默认验证?

xzabzqsa

xzabzqsa1#

你应该可以用@JsonAlias来实现

class DataModel {
  // Some other fields are not shown
  @JsonAlias("oldField")
  NewField newField;
}

class NewField {
  String foo;
}

相关问题