Jackson 反序列化泛型属性

我有这样一个类:

@Data
public class CreateExamParamDTO {

    /**
     * 考试名称
     */
    private String title;

    /**
     * 描述
     */
    private String description;

    /**
     * 报名开始时间
     */
    private LocalDateTime beginTime;

    /**
     * 报名截止时间
     */
    private LocalDateTime endTime;

    /**
     * 考试时间地点信息
     */
    private Map<LocalDateTime, List<CreateExamPlaceParamDTO>> timePlace;
}

有一个如下接口:

    @PostMapping
    @ApiOperation("创建考试")
    public MessageResponseVO createExam(  @RequestPart(value = "exam") CreateExamParamDTO createExamParamDTO) {
        return null;
    }

现在由于timePlace属性是一个包含泛型的 Map,导致spring mvc 在调用 jackson 进行反序列化时报Unsupported Media Type错误,想知道应该怎么处理这种泛型的反序列。

我知道可以使用 TypeReference,然后调用 readValue(value,typeReference)来反序列化泛型。但是这需要手动去调用,就不能让spring mvc自动反序列化了。我想知道是否有什么注解之类的方式活着全局设置的方式,既能处理泛型的反序列化,又能同时让 spirng mvc 自动去帮我做反序列化操作

阅读 3.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题