为什么LocalDateTime在springboot中作为ReponseBody返回时被序列化为数组?

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

我想获取 dd/MM/yyyy 格式的日期 所以,我先写了这段代码:

@GetMapping("/testAjax.json")
public ResponseBody<?> AjaxResponse testAjax(){
AjaxResponse response = new AjaxResponse();
DateTimeTest test = new DateTimeTest();
test.setDateTime(LocalDateTime.now());

response.addResponse("date", LocalDateTime.now());
response.addResponse("test", test);
return response;
}`

我得到了这样的回复:

{"status":false,"response":{"date":[2024,10,21,11,12,20,417960408],"test":{"dateTime":[2024,10,21,11,12,20,417940363]}}}

尝试添加

@Bean
    public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
        MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter();
        ObjectMapper mapper = new ObjectMapper();

        JavaTimeModule module = new JavaTimeModule();
        mapper.registerModule(module);
        mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(formatter));
        mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
        jsonConverter.setObjectMapper(mapper);
        return jsonConverter;
    }
    

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        converters.add(mappingJackson2HttpMessageConverter());
    }

但不工作,

json spring spring-boot rest jackson
1个回答
0
投票

也许这段代码可以解决您的问题:

String result=DateTimeFormatter.ofPattern("dd/MM/yyyy").format(localDateTime);
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.