@JsonFormat指南杰克逊
最后修改:9月30日,2020年
1.概述
在本文中,我们试图了解如何使用@jsonformat.在杰克逊。它是杰克逊的注释,用于指定如何格式化JSON输出的字段和/或属性。
具体来说,此注释允许您指定如何格式化日期和日历根据a的价值SimpleDateFormat格式。
2. Maven依赖
@jsonformat.定义在杰克逊 - 数据库包,因此我们需要以下Maven依赖项:
<依赖项> com.fasterxml.jackson.core groupID> Jackson-Databind Artifactid> 2.11.1 version> 依赖项>
3.入门
3.1。使用默认格式
首先,我们将演示使用的概念@jsonformat.用代表用户的类注释。
由于我们正试图解释注释的细节,因此用户将根据请求创建(而不是从数据库存储或加载)创建对象,并序列化为json:
公共类用户{私有字符串名字;私有字符串LastName;私有日期创建=新日期();//标准构造函数,setter和getters}
构建和运行此代码示例返回以下输出:
{“FirstName”:“John”,“LastName”:“Smith”,“创造德”:1482047026009}
正如你所看到的那样,创建日期字段显示为epoch以来的秒数,这是用于默认格式日期字段。
3.2。使用getter上的注释
让我们现在使用@jsonformat.指定格式创建日期字段应序列化。以下是更新此更改的用户类。这创建日期字段已被注释,如图所示指定日期格式。
用于的数据格式图案参数由SimpleDateFormat:
@jsonformat(shape = jsonformat.shape.string,pattern =“[电子邮件受保护]:mm:ss.sssz“)创建私有日期;
通过这种变化,我们再次建立项目并运行它。输出如下所示:
{“firstname”:“John”,“LastName”:“Smith”,“创建”:“[电子邮件受保护]:53:34.740 + 0000“}
正如你所看到的那样,创建日期使用指定的字段格式化了SimpleDateFormat格式使用@jsonformat.注解。
上面的示例使用字段上的注释演示。它也可以用在getter方法(属性)中使用如下。
例如,您可能有一个在调用时计算的属性。您可以在这种情况下使用getter方法上的注释。请注意,图案也已更改为仅返回即时的日期部分:
@jsonformat(shape = jsonformat.shape.string,pattern =“yyyy-mm-dd”)公共日期getcurrentdate(){返回新日期();}
结果输出如下:
{......,“currenddate”:“2016-12-18”,...}
3.3。指定语言环境
除了指定日期格式外,还可以指定要用于序列化的语言环境。未指定此参数导致使用默认语言环境执行序列化:
@jsonformat(shape = jsonformat.shape.string,pattern =“[电子邮件受保护]:mm:ss.sssz“,locale =”en_gb“)公共日期getcurrentdate(){返回新日期();}
3.4。指定形状
使用@jsonformat.和形状设置为jsonformat.shape.number.导致默认输出日期类型 - 截至时代以来的秒数。参数图案不适用于这种情况,被忽略:
@jsonformat(shape = jsonformat.shape.number)公共日期getDatenum(){返回新日期();}
输出如下所示:
{...,“数据项”:1482054723876}
4。结论
综上所述,@jsonformat.用于控制输出格式日期和日历类型如上所示。
可以使用上面显示的示例代码在GitHub。