为了账号安全,请及时绑定邮箱和手机立即绑定

反序列化属性“已创建”时出现问题(预期类型:[简单类型,类 java.time.LocalDate]

反序列化属性“已创建”时出现问题(预期类型:[简单类型,类 java.time.LocalDate]

莫回无 2023-01-05 17:02:01

我在一个测试失败的集成类中工作。该类在下面提供,


public class EllaServiceIntegrationTest {


    private static final String ELLA_JSON_RESPONSE_FRAUD = "{\n" + "    \"score\": 707,\n" + "    \"reason\": \"DOMAIN_DOES_NOT_EXIST\",\n"

                                                           + "    \"riskBand\": 4,\n" + "    \"email\": {\n"

                                                           + "        \"emailAddress\": \"fraudster@fraud.com\",\n"

                                                           + "        \"exists\": 4,\n"

                                                           + "        \"firstVerificationDate\": \"2019-05-31T19:08:20.7713155Z\",\n"

                                                           + "        \"firstVerificationDays\": 0,\n" + "        \"totalHits\": 31,\n"

                                                           + "        \"uniqueHits\": 1,\n" + "        \"score\": {\n"

                                                           + "            \"reason\": \"DOMAIN_DOES_NOT_EXIST\",\n"

                                                           + "            \"riskLevel\": 6,\n" + "            \"relevantInfoId\": 10900\n"

                                                           + "        }\n" + "    },\n" + "    \"domain\": {},\n" + "    \"phone\": {},\n"


    

我得到下面提供的错误堆栈,


查看完整描述

2 回答

?
慕的地10843

TA贡献1574条经验 获得超8个赞

@JsonDeserialize( using = JavaOffsetDateTimeDeserializer.class )

@JsonSerialize( using = JavaOffsetDateTimeSerializer.class )

private LocalDate created;

反序列化器将字符串转换为 Offsetdatetime,但创建的数据类型是 LocalDate,我认为从测试数据“2019-05-31T19:08:20.7712944Z”(包括区域)来看,您应该使用 OffsetDateTime 而不是 LocalDate


查看完整回答
反对 回复 2023-01-05
?
料青山看我应如是

TA贡献1527条经验 获得超6个赞

我找到了解决问题的方法。我需要更改所有 DTO 类的注释


@JsonDeserialize( using = JavaOffsetDateTimeDeserializer.class )

@JsonSerialize( using = JavaOffsetDateTimeSerializer.class )


@JsonSerialize( using = LocalDateSerializer.class )

@JsonDeserialize( using = LocalDateDeserializer.class )

现在测试通过了。


查看完整回答
反对 回复 2023-01-05

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信