Sprinboot Jackson 日期连载

问题描述 投票:0回答:1

我在 springboot web 上遇到 Jackson 的一个小问题,我期待这样的回应。

{
  'date': 'string of date'
}

但是我回来了

[
  0: java.sql.date,
  1: long number of timestamp
]

请问如何配置springboot来避免这种情况?

    @Configuration
    public class BootConfiguration {
        @Bean
        @Primary
        public PasswordEncoder passwordEncoder() {
            return PasswordEncoderFactories.createDelegatingPasswordEncoder();
        }
    
        @Bean
        public JavaTimeModule javaTimeModule() {
            return new JavaTimeModule();
        }
    
        @Bean
        public Jdk8Module jdk8TimeModule() {
            return new Jdk8Module();
        }
    
        @Bean
        public CoreJackson2Module coreJackson2Module() {
            return new CoreJackson2Module();
        }
    
        @Bean
        public OAuth2AuthorizationServerJackson2Module authorizationServerJackson2Module(){
            return new OAuth2AuthorizationServerJackson2Module();
        }
    
    
        public List<Module> securityModules(){
            ClassLoader classLoader = JdbcOAuth2AuthorizationService.class.getClassLoader();
            return SecurityJackson2Modules.getModules(classLoader);
        }
    
    
        @Bean
        @Primary
        @Order(Ordered.HIGHEST_PRECEDENCE)
        public ObjectMapper objectMapper() {
            ObjectMapper mapper = new ObjectMapper().findAndRegisterModules();
            mapper.registerModule(coreJackson2Module());
            mapper.registerModule(javaTimeModule());
            mapper.registerModule(jdk8TimeModule());
            mapper.registerModules(securityModules());
            mapper.registerModule(authorizationServerJackson2Module());
            mapper.addMixIn(UserPrincipal.class, Object.class);
            return mapper;
        }
}

这是控制器方法

@GetMapping(value = "/authentications", params = {"pge","lmt", "slug"})
public ResponseEntity<?> getLastLogins(
        Authentication authentication,
        @RequestParam("lmt")Integer limit,
        @RequestParam("pge")Integer page,
        @RequestParam("slug")String slug){
            return  new ResponseEntity<>(loginManager.findAllAuthentications(authentication.getName(),slug,limit,page), HttpStatus.OK);
        }
}

这是包含我尝试取回的属性的模型

    @Data
    public class User implements Serializable {
        private String firstName;
        private String lastName;
        private Date date;
        private Role role;
    }
spring-boot jackson-databind
1个回答
0
投票

我看到的唯一可能干扰您的 ObjectMapper 的问题是添加的 2 个额外模块。

mapper.registerModules(securityModules());
mapper.registerModule(authorizationServerJackson2Module());

尝试删除这 2 个,然后重试。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.