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

kin*_*iva 4 java java-8 spring-boot eclipse-collections

因此,我需要帮助使用 java eclipse 集合作为使用 spring boot Response Entity JSON 的响应的一部分。我尝试过使用通用方法,但收到一个响应异常错误,它无法转换为 java ArrayList 类型,因此任何人都可以提供使用 eclipse 集合数据而不是 java 集合列表的正常休息端点的示例吗?

这是一个示例代码

 @GetMapping("/list")
public ResponseEntity<MutableList<Person>> getData() {

    return ResponseEntity.ok(Map.of(
                    "success", true,
                    
                    "data", Map.of(
                            "users", personService.getUsers()
                    )
            ));

}
Run Code Online (Sandbox Code Playgroud)

小智 5

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

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

com.fasterxml.jackson.databind.Module 类型的任何 bean 都会自动注册到自动配置的 Jackson2ObjectMapperBuilder 中,并应用于它创建的任何 ObjectMapper 实例。当您向应用程序添加新功能时,这提供了一种贡献自定义模块的全局机制。

所以将 Eclipse Collections 模块注册为 bean 就足够了:

@Bean
public EclipseCollectionsModule eclipseCollectionsModule() 
{
    return new EclipseCollectionsModule();
}
Run Code Online (Sandbox Code Playgroud)