公共部分#
private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
public static ObjectMapper getObjectMapper() {
return OBJECT_MAPPER;
}
泛型クラスを持つ JSON を変換する#
/**
* 泛型クラスを持つJSONを変換する
*
* @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を泛型クラスに変換できませんでした。失敗の理由:{}", e.getMessage(), e);
throw new RuntimeException(e);
}
}
使用例:
JavaType javaType = getObjectMapper().getTypeFactory().constructParametricType(ReqEntityPublic.class, UserDTO.class);
ReqEntityPublic<UserDTO> reqEntityPublic = toBean(jsonStr, javaType);