公共部分#
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
public static ObjectMapper getObjectMapper() {
return OBJECT_MAPPER;
}
将 json 转换成带有泛型的 class#
/**
* 将 json 转换成带有泛型的 class
*
* @param json json
* @param javaType 泛型类
* @param <T> 泛型
* @return 泛型实体类
*/
public static <T> T toBean(String json, JavaType javaType) {
try {
return OBJECT_MAPPER.readValue(json, javaType);
} catch (Exception e) {
log.error("Jackson 将 json 转换成带有泛型的 Class 对象失败, 失败原因: {}", e.getMessage(), e);
throw new RuntimeException(e);
}
}
用例:
JavaType javaType = getObjectMapper().getTypeFactory().constructParametricType(ReqEntityPublic.class, UserDTO.class);
ReqEntityPublic<UserDTO> reqEntityPublic = toBean(jsonStr, javaType);