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

杰克逊日期从 JSON 文件反序列化错误

杰克逊日期从 JSON 文件反序列化错误

森林海 2022-12-15 16:39:59
我正在尝试将 JSON 文件反序列化为 POJO 对象,但出现错误。JSON 文件看起来像 (NotificationPOST.json)  {   "endDate":"2018-12-27",   "malfunctionStartDate":"2018-11-20T22:22:22",   "malfunctionEndDate":"2018-11-21T12:34:46"   }POJO类有 @DateFormat(field = "Start Date", groups = Order.Level2.class)    @JsonSerialize(using = DateSerializer.class)    private DateTime startDate;    @DateFormat(field = "End Date", groups = Order.Level2.class)    @JsonSerialize(using = DateSerializer.class)    private DateTime endDate;自定义 DateSerializer 类import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.jackson.databind.SerializerProvider;import java.io.IOException;import org.joda.time.DateTime;import org.joda.time.format.DateTimeFormat;import org.joda.time.format.DateTimeFormatter;public class DateSerializer extends JsonSerializer<DateTime> {    private static DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");    public DateSerializer() {    }    public void serialize(DateTime value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException {        gen.writeString(formatter.print(value));    }}我试图运行的测试类@BeforeClass    public static void init() {        notificationPOST = new File("src/test/resources/json/NotificationPOST.json");    }@Testpublic void notificationPayloadToEntityTest () throws IOException {private ObjectMapper objectMapper = new ObjectMapper();    NotificationPOST post = objectMapper.readValue(notificationPOST, NotificationPOST.class);}
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

您可以添加jackson-datatype-joda到您的依赖项,然后JodaModule在您的ObjectMapper

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());


查看完整回答
反对 回复 2022-12-15
  • 1 回答
  • 0 关注
  • 66 浏览

添加回答

举报

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