我有两个字段:startDate
和 endDate
,我需要确保结束日期等于或晚于开始日期。执行此操作的最佳方法是什么?
我想确保 endDate
在 startDate
之后被反序列化,这样我就可以将逻辑放在它的 setter 方法中,例如:
@JsonSetter( "end" )
public void setEnd(String end)
{
this.endDate = parseZonedDateTime( end );
//invalid
if ( this.endDate.compareTo( this.startDate ) < 0 )
{
//Throw a validation exception
}
}
但这只有在保证首先设置开始时才有效。
最佳答案
I have two fields: startDate and endDate and I need to make sure the end date is equal to or later than the start date. What's the best way to do this?
我不会尝试通过 jackson 来做到这一点。 jackson 应该只专注于将 json 转换为对象。 jackson 应该处理值的有效性。也不是反序列化顺序。
尝试在 jackson 转换后验证,手动或通过验证框架(如 JSR-303)。
关于java - 如何在 jackson 中指定反序列化顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49483151/