@JsonFormat、@JSONField、@DateTimeFormat的使用以及其区别[通俗易懂]

三者出处1、JsonFormat来源于jackson,Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较活跃,更新速度也比较快。2、JSONField来源于fastjson,是阿里巴巴…

大家好,又见面了,我是你们的朋友全栈君。

三者出处

1、JsonFormat来源于jackson,Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较活跃,更新速度也比较快。
2、JSONField来源于fastjson,是阿里巴巴的开源框架,主要进行JSON解析和序列化。
3、DateTimeFormat是spring自带的处理框架,主要用于将时间格式化。

用法

DateTimeFormat:

因为其用法比较单一,只用于将字符串格式化成日期,在加入spring以后,直接使用注解@DateTimeFormat(pattern=”yyyy-MM-dd”)即可。@DateTimeFormat 注解有3个可选的属性:style,pattern和iso


属性style: 允许我们使用两个字符的字符串来表明怎样格式化日期和时间。第一个字符表明了 日期的格式,第二个字符表明了时间的格式。下面的表格中列出了可用的选择以及相应的输出的例子:
描述 字符串值 示例输出

Tables Are Cool
短格式(这是缺省值) SS 8/30/64 11:24 AM
中等格式 MM Aug 30, 1964 11:24:41 AM
长格式 LL August 30, 1964 11:24:41 AM CDT
完整格式 FF Sunday, August 30,1964 11:24:41 AM CDT
使用短横线省略日期或时间 M- Aug 30, 1964

Pattern: 属性允许我们使用自定义的日期/时间格式。该属性的值遵循java标准的date/time格式规范。缺省的该属性的值为空,也就是不进行特殊的格式化。通常情况下我们都是使用这个 注解做自定义格式化的。
iso: 基本上用不上,这里不做讲解

JsonFormat

用法 为在属性值上 @JsonFormat(pattern=”yyyy-MM-dd”,timezone=”GMT+8”),如果直接使用 @JsonFormat(pattern=”yyyy-MM-dd”)就会出现2018-08-01 08:00:00的情况, 会相差8个小时,因为我们是东八区(北京时间)。所以我们在格式化的时候要指定时区(timezone )

JSONField

用法:目前最长的用属性是@JSONField(name=”resType”)和 @JSONField(format=”yyyy-MM-dd”)
name:@JSONField(name=”resType”)主要用于指定前端传到后台时对应的key值,如果bean中没有这个注解,则默认前端传过来的key是field本身,即如果是private String name,name前端对应的key就是name才能对应上。
format @JSONField(format=”yyyy-MM-dd”)主要用于格式化日期,比如前台传过来的时间是2018-07-12 17:44:08,但是通过这个注解,你存到数据库的时间就是2018-07-12 00:00:00.

区别

网上有说DateTimeFormat主要用于后台接受前台的值,而JsonFormat主要用于后台传值到前台,其实都一个用,没差的。其他的区别就是速度的问题了,这里有一篇其对数据的处理速度的对比,供大家参考。
https://github.com/eishay/jvm-serializers/wiki

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126225.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月17日 下午11:20
下一篇 2022年4月17日 下午11:40


相关推荐

  • 2021 Pychram激活码_通用破解码

    2021 Pychram激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    50
  • FastJson中@JSONField注解使用

    FastJson中@JSONField注解使用最近做项目中,使用了json格式在服务器之间进行数据传输。但是发现json格式数据不符合JAVA中的变量定义规则,并且难以理解,因此需要在后台中做二次处理,将数据处理成我们系统中定义的格式。思路:   1.定义需要返回的bean,bean中定义需要返回的数据    2.获取到需要处理的JSON字符串   3.将JSON字符串转换为bean,再将转换后的bean返回给客

    2025年8月21日
    8
  • jenkins自动触发构建_jenkins调用bat脚本

    jenkins自动触发构建_jenkins调用bat脚本前言跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。jenkins的定时任务是用的crontab语法定时构建语法

    2022年7月28日
    6
  • 湖南省第六届大学生计算机程序设计竞赛—数字整除

    湖南省第六届大学生计算机程序设计竞赛—数字整除

    2022年2月2日
    58
  • Ubuntu 安装Jdk1.8「建议收藏」

    Ubuntu 安装Jdk1.8「建议收藏」1、下载安装包Oracle官网下载Jdk1.8Linux环境安装包,传送门:Oracle官网Jdk1.8安装包下载地址图示如下:2、环境配置将安装包上传到Ubuntu系统的/usr/local/programs/java/目录下,如果目录不存在,命令如下:$mkdir-p/usr/local/programs/java/解压缩,命令如下:…

    2022年7月14日
    24
  • 常用软件写网页html,新手用什么软件写html网页比较靠谱

    常用软件写网页html,新手用什么软件写html网页比较靠谱这里所说的网页是指包含javascript代码在内的html静态网页(在做动态网站时称之为模版页)。我接触页面制作的时候连基本的css语法都不会,之前也很少用table的方式写,所以直接从div+css学起,开始是看别人写好的网页,然后分析他们的每一行代码,后来发现这样学习不太适合我,于是就把一个结构不太复杂的网页截图,然后照着图片来写html结构的网页。开始的时候连基本的margin、paddi…

    2022年5月30日
    42

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号