公共部分#
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);