当前位置: 首页 > 知识库问答 >
问题:

如何在Jackson中指定反序列化顺序?

张玺
2023-03-14
@JsonSetter( "end" )
public void setEnd(String end)
{
    this.endDate = parseZonedDateTime( end );

    //invalid
    if ( this.endDate.compareTo( this.startDate ) < 0 )
    {
        //Throw a validation exception
    }
}

但这只有在保证先设置start的情况下才起作用。

共有1个答案

东门胤
2023-03-14

我有两个字段:startDate和endDate,我需要确保结束日期等于或晚于开始日期。做这件事最好的方法是什么?

我不会试图让杰克逊做这件事。Jackson应该只关注将json转换为Object。Jackson应该注意价值观的有效性。也没有反序列化顺序。

尝试在Jackson转换后进行验证,可以手动进行,也可以通过JSR-303这样的验证框架进行验证。

 类似资料:
  • 我有下面的课: 我希望它从Jackson处理的以下JSON中反序列化。 jackson-datatype-joda(https://github.com/fasterxml/jackson-datatype-joda) 自定义序列化程序(公共类JodaDateTimeJsonSerializer扩展JsonSerializer{...}-Spring@ResponseBody Jackson Js

  • 像这样: 我该怎么办?

  • 问题内容: 我无法找出使用杰克逊实现自定义序列化/反序列化的正确方法。我有很多类(〜50),它们带有应被序列化/反序列化而不是原始的原始字段。喜欢: 所有序列化和反序列化都非常相似,我只需要在整数之后添加一个后缀(C,页面,米等)。 一种简单的方法是在每个这样的字段中添加一对/ 注释并实现它们。但是我最终会得到100个 非常相似的 序列化器/反序列化器。 我想到了添加自定义注释的各个领域,说或,这

  • 问题内容: 我正在实现RESTful Web服务,其中用户必须与请求一起发送签名的验证令牌,以便可以确保请求不会被中间人篡改。我当前的实现如下。 验证令牌是一个VerifData对象,它序列化为String,然后进行哈希处理和加密。 在我的服务中,我将要序列化的数据放入VerifData的实例中,然后使用Jackson ObjectMapper对其进行序列化,并与验证令牌一起传递给验证引擎。 但是

  • 我正在实现一个RESTful web服务,其中用户必须在请求的同时发送一个签名的验证令牌,这样我就可以确保请求没有被中间人篡改。我当前的实现如下所示。 验证令牌是一个VerifData对象,序列化为字符串,然后进行散列和加密。 有办法绕过这件事吗?我可以指定ObjectMapper要映射的属性的顺序吗(像按升序)?或者是否有任何其他方法可以最好地实现此验证步骤。客户端和服务器实现都是我开发的。我使

  • 假设我正在为某个类编写自定义序列化,但希望使用默认方法处理其中一个字段。 那要怎么做? 序列化时,我们有。 但反序列化的相应方法是什么? 请注意以下代码: 如何实现MyOuterDeserializer?