返回顶部
首页 > 资讯 > 后端开发 > Python >如何解决LocalDateTime传值JSON格式化问题
  • 760
分享到

如何解决LocalDateTime传值JSON格式化问题

2024-04-02 19:04:59 760人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录LocalDateTime传值JSON格式化问题推荐方法其它方法LocalDateTime的json格式化问题解决方式一解决方式二LocalDateTime传值JSON格式化问题

LocalDateTime传值JSON格式化问题

LocalDateTime是jdk8中提供的新功能,极大的优化了原生日期时间类的使用。

但是第一次使用该类可能会在传值过程中出现格式化的小问题(如:JSON无法解析前端所传格式,序列化时LocalDateTime成为数组等),以下提供简单的解决方案。

推荐方法

WEBmvcConfigurer实现类下完成以下两步

1).注册一个Converter<String, LocalDateTime>实现类,其作用是处理于url所携带的参数上(如:@RequestParam、@PathVariable )的LocalDateTime参数;

2).增加一个序列化、反序列化器,作用为处理实体类的的LocalDateTime属性。

P.S.经过多轮测试,得出了以上方法,由于该方法需要以上两个步骤,作为完美主义者,我曾尝试用一个步骤解决,但并未如愿以偿,若你有更好的方法,还望不吝赐教,先行谢过。

源码如下:

// import ...
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
    
    
    static class StringToLocalDateTimeConverter implements Converter<String, LocalDateTime> {
        @Override
        public LocalDateTime convert(String s) {
            DateTimeFORMatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            return LocalDateTime.parse(s, formatter);
        }
    }
    
    @Override
    public void addFormatters(FormatterReGIStry registry) {
        registry.addConverter(new StringToLocalDateTimeConverter());
    }
    
    
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        ObjectMapper objectMapper = new ObjectMapper();
        JavaTimeModule module = new JavaTimeModule();
        module.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(pattern));
        module.aDDDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(pattern));
        objectMapper.registerModule(module);
        converters.add(new MappingJackson2HttpMessageConverter(objectMapper));
    }
}

其它方法

url参数:

给参数加上@DateTimeFormat(此注解来自spring,无需引入其他包),在pattern中标注约定好的格式即可。

public void Test(@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime time) {
    ...
}

实体类:

在实体类中的属性上添加@JsonFormat(此注解来自Jackson,该包被Spring所依赖,无需导入),同样在pattern中标注好格式。

@Data
public class Demo {
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime time;
    
}

由于这种方法需要对代码中所有的LocalDateTime都进行标注,相对麻烦,且耦合度高,所以不作推荐。

LocalDateTime的json格式化问题

LocalDateTime 的 json 格式化存在问题如图所示:

解决方式一

添加json格式化配置文件:

@Configuration
public class LocalDateTimeSerializerConfig {
    @Value("${spring.jackson.date-format:yyyy-MM-dd HH:mm:ss}")
    private String pattern;
    public LocalDateTimeSerializer localDateTimeDeserializer() {
        return new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(pattern));
    }
    @Bean
    public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
        return builder -> builder.serializerByType(LocalDateTime.class, localDateTimeDeserializer());
    }
}

解决方式二

@JsonFormat 注解

上面的方案全局生效,当全局的格式化方式无法满足我们需求时,我们对日期格式要做特殊的处理:在类的属性上添加注解

@JsonFormat(pattern = "yyyy-MM-dd")
@apiModelProperty(value = "创建时间")
private LocalDateTime createTime;

加上效果后:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 如何解决LocalDateTime传值JSON格式化问题

本文链接: https://lsjlt.com/news/166150.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何解决LocalDateTime传值JSON格式化问题
    目录LocalDateTime传值JSON格式化问题推荐方法其它方法LocalDateTime的json格式化问题解决方式一解决方式二LocalDateTime传值JSON格式化问题...
    99+
    2024-04-02
  • 如何解决Golang结构体json时间格式化的问题
    小编给大家分享一下如何解决Golang结构体json时间格式化的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!今天开发的过程中遇到一个问题,数据库内有个日期字...
    99+
    2023-06-09
  • SpringBoot如何对LocalDateTime进行格式化并解析
    目录【1】格式化后台传给前端的日期SpringBoot对Date/DateTime配置第一种方式:配置localDateTimeSerializer第二种方式:@JsonFormat...
    99+
    2024-04-02
  • json如何格式化
    Python中可以使用json模块来格式化JSON数据,使用json.loads()函数解析原始的JSON数据,并使用json.dumps()函数将解析后的数据格式化为带缩进的字符串即可。 在Python中,可以使用json模块...
    99+
    2024-01-22
    json格式化 json
  • idea如何格式化json
    要格式化JSON,可以使用Python的json库来实现。以下是一个例子:```pythonimport jsonjson_data...
    99+
    2023-09-01
    idea json
  • 如何解决处理后台返回json数据格式的问题
    小编给大家分享一下如何解决处理后台返回json数据格式的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!最近在做一个移动端前端...
    99+
    2024-04-02
  • vue父子模板传值问题如何解决
    这篇文章主要讲解了“vue父子模板传值问题如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue父子模板传值问题如何解决”吧!具体代码如下:<!DOCTYPE html...
    99+
    2023-07-04
  • json格式不正确如何解决
    要解决JSON格式不正确的问题,需要根据具体情况进行调试和修复。以下是一些常见的解决方法:1. 使用JSON验证工具:可以使用在线的...
    99+
    2023-08-16
    json
  • LocalDateTime日期时间格式中间多了一个T的问题及解决
    目录LocalDateTime日期时间格式中间多一个Tdatetime时间格式化中间为什么有个T总结LocalDateTime日期时间格式中间多一个T 1、为什么会产生这种格式? L...
    99+
    2023-03-09
    LocalDateTime日期时间格式 T的日期时间格式 LocalDateTime日期格式
  • Go json反序列化“null“的问题如何解决
    本文小编为大家详细介绍“Go json反序列化“null“的问题如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Go json反序列化“null“的问题如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入...
    99+
    2023-07-05
  • 如何解决windows中双击盘符提示格式化问题
    这篇文章给大家介绍如何解决windows中双击盘符提示格式化问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  最近有人问到我双击盘符提示格式化的问题,今天电脑百科网小篇教大家如何解决双击盘符提示格式化问题...
    99+
    2023-06-13
  • 如何解决php中date函数格式化错误的问题
    这篇文章将为大家详细讲解有关如何解决php中date函数格式化错误的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。php date函数格式化错误的解决办法:1、修改php.ini配置文件;2、加上“d...
    99+
    2023-06-20
  • js如何格式化JSON代码
    这篇文章将为大家详细讲解有关js如何格式化JSON代码,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。格式化 JSON 代码相信大家都使用过JSON.stringify方法,该方法可以将一个 Ja...
    99+
    2023-06-17
  • JavaScript如何格式化JSON代码
    这篇文章主要为大家展示了“JavaScript如何格式化JSON代码”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何格式化JSON代码”这篇文章吧。格式化JSON代码我们都...
    99+
    2023-06-27
  • json格式的数据如何增加值
    要向JSON数据添加值,您需要首先解析该JSON数据,然后将新值添加到解析后的对象中,最后将对象重新转换回JSON格式。下面是一个示...
    99+
    2023-09-05
    json
  • 如何解决vscode中保存后html自动格式化的问题
    这篇文章将为大家详细讲解有关如何解决vscode中保存后html自动格式化的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。最近几天更新了 vsCode 的版本,目前所...
    99+
    2024-04-02
  • Vue如何解决兄弟组件之间传值问题
    目录解决兄弟组件之间传值问题bus可以通过两种方式来实现各类组件间传值方法(父子、兄弟、页级)父子关系组件兄弟关系组件页级关系组件解决兄弟组件之间传值问题 vue中 父组件向子组件传...
    99+
    2024-04-02
  • php无法返回json格式如何解决
    这篇文章主要介绍“php无法返回json格式如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php无法返回json格式如何解决”文章能帮助大家解决问题。php无法返回json格式的解决办法:1...
    99+
    2023-07-05
  • PHP数值转日期格式的常见问题解决
    PHP作为一种流行的编程语言,广泛应用于各种网络开发领域。在实际工作中,我们有时会遇到需要将数值转换为日期格式的问题。本文将介绍一些在PHP中常见的数值转日期格式的问题,并提供具体的代...
    99+
    2024-04-02
  • LocalDateTime日期时间格式中间多了一个T如何解决
    本篇内容主要讲解“LocalDateTime日期时间格式中间多了一个T如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“LocalDateTime日期时间格式中间多了一个T如何解决”吧!Lo...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作