java - 如何在 jackson 中指定反序列化顺序?

标签 java json spring jackson

我有两个字段:startDateendDate,我需要确保结束日期等于或晚于开始日期。执行此操作的最佳方法是什么?

我想确保 endDatestartDate 之后被反序列化,这样我就可以将逻辑放在它的 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/

相关文章:

java - ZeroMQ 两个 PUB-SUB 代理

java - JDBC 使用 MySQL 选择批处理/获取大小

json - 如何在字符串中传递 Json 数组 - asp 中的 webapi

spring - 我需要一个 context.xml 文件来将 spring webapp 部署到 tomcat

java - spring-boot redis : How to invalidate all sessions of a user?

java - 您如何使用 JUNIT 测试 spring jdbcTemplate?

java - 将 Apache httpclient 用于 https

java - 在 Android Studio 中将一个类用于多个输入字段的快捷方式

javascript - 从 ajax 读取值以 json 格式返回

c# - 反序列化数组内的数组