如何在Java中的Spring引导ResponseEnity中使用Eclipse集合



因此,我需要帮助使用javaeclipse集合作为使用spring-boot响应实体JSON的响应的一部分。我尝试过使用通用方法,但我收到了一个响应异常错误,它无法转换为java ArrayList类型,所以有人能为使用eclipse集合数据而不是java集合列表的正常rest端点提供一个示例吗?

这是一个示例代码

@GetMapping("/list")
public ResponseEntity<MutableList<Person>> getData() {
return ResponseEntity.ok(Map.of(
"success", true,

"data", Map.of(
"users", personService.getUsers()
)
));
}

启用eclipse集合的说明Jackson模块添加了对eclipse集合类型的Json序列化支持:

默认情况下,SpringMVC映射Jackson2HttpMessageConverter将使用Jackson2ObjectMapperBuilder创建自己的ObjectMapper,并带有默认选项。根据Spring Boot文档76.3自定义Jackson ObjectMapper章节:

com.fasterxml.jackson.databind.Module类型的任何bean都是自动注册到自动配置的Jackson2ObjectMapperBuilder,并应用于任何ObjectMapper它创建的实例。这为当您将新功能添加到应用

所以将eclipse集合模块注册为bean就足够了:

@Bean
public EclipseCollectionsModule eclipseCollectionsModule() 
{
return new EclipseCollectionsModule();
}

用以下代码替换返回表达式:

return ResponseEntity.ok(personService.getUsers().stream().collect(Collectors2.toList()));

最新更新