springMVC返回的json日期为Long的格式化
2015-10-30 14:48
671 查看
springMVC+myBatis查询数据,得到date类型数据,返回json日期为Long数字(毫秒数)的日期格式化方案:
1、springMVC配置文件统一返回格式:
2、jackson 注解处理
3、自定义注解
1、springMVC配置文件统一返回格式:
<mvc:annotation-driven> <!-- 处理responseBody 里面日期类型 --> <mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="com.fasterxml.jackson.databind.ObjectMapper"> <property name="dateFormat"> <bean class="java.text.SimpleDateFormat"> <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" /> </bean> </property> </bean> </property> </bean> </mvc:message-converters> </mvc:annotation-driven>
2、jackson 注解处理
@JsonFormat : 此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private Date createtime; @JsonIgnoreProperties : 此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。 @JsonIgnore : 此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。 @JsonSerialize // 反序列化一个固定格式的Date @JsonDeserialize(using = CustomDateDeserialize.class) public void setBirthday(Date birthday) { this.birthday = birthday; } // 序列化指定格式的double格式 @JsonSerialize(using = CustomDoubleSerialize.class) public double getSalary() { return salary; } 自定义一个格式化类: public class CustomDateDeserialize extends JsonDeserializer<Date> { private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @Override public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { Date date = null; try { date = sdf.parse(jp.getText()); } catch (ParseException e) { e.printStackTrace(); } return date; } }
3、自定义注解
import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; /** * ClassName:DateJsonSerializer <br/> * Function: 日期类型格式化,格式化为:yyyy-MM-dd HH:mm:ss 格式. 用法如下:<br/> * Reason: @JsonSerialize(using=DateJsonSerializer.class) * @Column(name="BIRTHDAY") * public Date getBirthday() { * return birthday; * } * . <br/> * Date: 2014年7月10日 下午1:26:08 <br/> * @author zhangzhaoyu * @version 1.0 * @since JDK 1.7 * @see */ public class DateJsonSerializer extends JsonSerializer<Date> { @Override public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String formattedDate = formatter.format(value); jgen.writeString(formattedDate); } }
相关文章推荐
- 如何在 Linux 上安装、配置 NTP 服务器和客户端?
- XML 与 JSON 优劣对比
- Chrony:一个类 Unix 系统上 NTP 客户端和服务器替代品
- VBA将excel数据表生成JSON文件
- DB2 日期和时间的函数应用说明
- newtonsoft.json解析天气数据出错解决方法
- flex actionScript时间处理相加返回相加后的date
- Flex中对表格某列的值进行数字格式化并求百分比添加%
- Delphi实现读取系统时间与日期完整实例
- Lua常用时间函数使用实例
- asp格式化日期时间格式的代码
- Powershell小技巧之通过EventLog查看近期电脑开机和关机时间
- C#实现判断一个时间点是否位于给定时间区间的方法
- vbs 解析json jsonp的方法
- 比较简洁的JavaScript 实时显示时间的脚本 修正版
- Extjs4如何处理后台json数据中日期和时间
- C#实现将类的内容写成JSON格式字符串的方法
- C#简单读取、改变文件的创建、修改及访问时间的方法
- JQuery ajax返回JSON时的处理方式 (三种方式)