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"); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |