加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

fastjson对Date的处理

发布时间:2020-12-16 19:40:28 所属栏目:百科 来源:网络整理
导读:对日期的序列化: 一种方法是通过注解 Java代码 @JSONField(format="yyyy-MM-ddHH:mm:ss")publicDatebirthday; 另一种是通过SerializeConfig: Java代码 privatestaticSerializeConfigmapping=newSerializeConfig();privatestaticStringdateFormat;static{da

对日期的序列化:

一种方法是通过注解

Java代码

@JSONField(format="yyyy-MM-ddHH:mm:ss")
publicDatebirthday;

另一种是通过SerializeConfig:

Java代码

privatestaticSerializeConfigmapping=newSerializeConfig();
privatestaticStringdateFormat;
static{
dateFormat="yyyy-MM-ddHH:mm:ss";
mapping.put(Date.class,newSimpleDateFormatSerializer(dateFormat));
}

json字符串中使用单引号:

String text = JSON.toJSONString(object,SerializerFeature.UseSingleQuotes);

字段显示不同的key:

publicclassUser{
@JSONField(name="ID")
publicintgetId(){...}
}

Useruser=...;
JSON.toJSONString(user);//{"ID":001}

自定义序列化代码示例:

publicclassJsonUtil{
privatestaticSerializeConfigmapping=newSerializeConfig();
privatestaticStringdateFormat;
static{
dateFormat="yyyy-MM-ddHH:mm:ss";
}

/**
*默认的处理时间
*
*@paramjsonText
*@return
*/
publicstaticStringtoJSON(ObjectjsonText){
returnJSON.toJSONString(jsonText,SerializerFeature.WriteDateUseDateFormat);
}

/**
*自定义时间格式
*
*@paramjsonText
*@return
*/
publicstaticStringtoJSON(StringdateFormat,StringjsonText){
mapping.put(Date.class,newSimpleDateFormatSerializer(dateFormat));
returnJSON.toJSONString(jsonText,mapping);
}
}

自定义反序列化示例:

先自定义一个日期解析类:

Java代码

publicclassMyDateFormatDeserializerextendsDateFormatDeserializer{

privateStringmyFormat;

publicMyDateFormatDeserializer(StringmyFormat){
super();
this.myFormat=myFormat;
}

@Override
protected<Date>Datecast(DefaultJSONParserparser,Typeclazz,ObjectfieldName,Objectval){
if(myFormat==null){
returnnull;
}
if(valinstanceofString){
StringstrVal=(String)val;
if(strVal.length()==0){
returnnull;
}

try{
return(Date)newSimpleDateFormat(myFormat).parse((String)val);
}catch(ParseExceptione){
thrownewJSONException("parseerror");
}
}
thrownewJSONException("parseerror");
}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读