fastjson设置指定日期属性的格式化

简介: fastjson默认将时间格式化为时间戳,如果我们想以时间字符串格式输出的话,暂提供两种方式1.序列化器方式声明DateJsonSerializerpublic class DateJsonSerializer implements Object...

fastjson默认将时间格式化为时间戳,如果我们想以时间字符串格式输出的话,暂提供两种方式

1.序列化器方式

声明DateJsonSerializer

public class DateJsonSerializer implements ObjectSerializer {
    @Override
    public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType,int features) throws IOException {
        SerializeWriter out = serializer.getWriter();
        if (object == null) {
            serializer.getWriter().writeNull();
            return;
        }
        out.write("\"" + DateUtil.date2Str(((Date)object),"yyyy-MM-dd") + "\"");
    }
}
AI 代码解读

解析时使用DateJsonSerializer

 SerializeConfig config = new SerializeConfig();
 config.put(Date.class, new DateJsonSerializer());

 return JSONObject.parseObject(JSON.toJSONString(data, config));
AI 代码解读

但是上面的解决方案面临一个问题,如果不满足上面的条件(多个date属性,而且需要按照不定的格式序列化这些日期属性),那么我们就需要另辟蹊径,使用fastjson的特性来完成:

2.bean字段声明方式

@JSONField(format="yyyyMMdd")
    private Date date2;
@JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date date3;
AI 代码解读
目录
打赏
0
0
1
0
10
分享
相关文章
FastJson - 设置默认参数,全局配置方式及爬坑
FastJson - 设置默认参数,全局配置方式及爬坑
1916 0
【JetCache】JetCache的使用方法与步骤
【JetCache】JetCache的使用方法与步骤
5824 0
巧用fastjson自定义序列化类实现字段的转换
项目中突然需要增加另一个字段的查找,而这个查找需要查另一张表的记录。 但现在产品很多地方都要增加该字段,如何最快的实现该功能呢。 办法如下: 通过fastjson序列化时,增加该字段的序列化类,该序列化类通过CODE查找名称,并序列化到前端。
5964 0
com.alibaba.fastjson转换JSONObject数据后顺序与原JSON字符串顺序不一致原因分析
Json字符串转JSONObject对象保证属性及其内部JSONObject有序(本身顺序而非需要指定排序)
3338 1
springboot项目读取 resources 目录下的文件的9种方式(总结)
springboot项目读取 resources 目录下的文件的9种方式(总结)
4572 1
使用 fastjson 转换 Date 格式的数据,默认是时间戳,更改为 年-月-日 的方法
使用 fastjson 转换 Date 格式的数据,默认是时间戳,更改为 年-月-日 的方法
1677 0
fastjson全局日期序列化设置导致JSONField无效
fastjson通过代码指定全局序列化返回时间格式,导致使用JSONField注解标注属性的特殊日期返回格式失效
353 0
谁偷了我的1天,JSON格式化时区问题
谁偷了我的1天,JSON格式化时区问题
1378 0
谁偷了我的1天,JSON格式化时区问题
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等