无法在java中将可分页响应数组解析为dto



我正在开发一个spring-boot应用程序,在该应用程序中我得到了可分页的响应,然后我想使用该可分页响应数组将其解析为一些DTO的列表。

这是我的功能:

public Object fetchSkuGroupsByIdAndWarehouseId(Integer warehouseId, Integer pageNumber, Integer pageSize,
Long groupId) throws IOException, NoSuchFieldException, IllegalAccessException {
ResponseEntity<FeignClientResponse> responseEntity = locationInventoryClient.fetchGroupsByIdAndWarehouseId(warehouseId,pageNumber,pageSize,groupId);
PageableResponse response;
try {
response= objectMapper.readValue(objectMapper.writeValueAsString(
responseEntity.getBody().getData()), PageableResponse.class);
} catch (JsonProcessingException e){
log.error("JsonProcessingException in method fetchSkuGroupsByIdIn");
throw new InvalidMovementRequest("JsonProcessingException in method fetchSkuGroupsByIdIn");
}
log.info(response.getData().toString());
List<Object> list= (List<Object>) response.getData();
//have to convert here  to List<SkuGroupDTO>.

return "hey";
}

我也正确地获得了列表列表,但无法将其解析为现有的DTO,我尝试了映射和流式传输,但没有成功。

有什么办法我能做到吗?

您可以创建一个映射器,在YourDTOMapper类中将数据转换为DTO,如下所示:

public static YourDTO mapObjectTo(Object entity) {
return YourDTO.builder()
.id(entity.getId())
.name(entity.getName())
.build();
}

(用您的属性替换id和名称(,而不是像这样使用:

List<YourDTO> yourDTO = response.getData().stream().map(YourDTOMapper::mapObjectTo)
.collect(Collectors.toList());

相关内容

  • 没有找到相关文章