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") + "\"");
    }
}

解析时使用DateJsonSerializer

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

 return JSONObject.parseObject(JSON.toJSONString(data, config));

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

2.bean字段声明方式

@JSONField(format="yyyyMMdd")
    private Date date2;
@JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date date3;
目录
相关文章
|
XML Dubbo fastjson
FastJson - 设置默认参数,全局配置方式及爬坑
FastJson - 设置默认参数,全局配置方式及爬坑
2119 0
|
JSON 数据格式
jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题
jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题
1195 0
|
Java Shell Windows
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
java Runtime.exec()执行shell/cmd命令:常见的几种陷阱与一种完善实现
381 6
|
Java API Spring
spring boot中Excel文件下载踩坑大全
spring boot中Excel文件下载踩坑大全
2503 2
spring boot中Excel文件下载踩坑大全
|
Java Linux Windows
system.getproperty详解
system.getproperty详解
|
存储 JSON fastjson
聊聊fastjson反序列化的那些坑
聊聊fastjson反序列化的那些坑
3504 0
聊聊fastjson反序列化的那些坑
|
存储 缓存 NoSQL
redis中的分布式锁(setIfAbsent)(expire)
redis中的分布式锁(setIfAbsent)(expire)
|
存储 数据可视化 Java
ElasticSearch单机版安装
ElasticSearch单机版安装
244 0
|
JSON Java API
实战 | JAVA读取WORD,包含表格。
我们有这样一个需求,需要抽取出WORD文档中的内容,然后组装成特定的json格式发送给第三方引擎接口
2134 0
|
fastjson Java
fastjson全局日期序列化设置导致JSONField无效
fastjson通过代码指定全局序列化返回时间格式,导致使用JSONField注解标注属性的特殊日期返回格式失效
431 0