springMVC返回的json⽇期为Long的格式化
标签:
2015-10-30 14:48 1467⼈阅读 (0)
分类:
spring(4)
springMVC+myBatis查询数据,得到date类型数据,返回json⽇期为Long数字(毫秒数)的⽇期格式化⽅案:
1、springMVC配置⽂件统⼀返回格式:
1<mvc:annotation-driven>
2<!-- 处理responseBody ⾥⾯⽇期类型 -->
3<mvc:message-converters>
4<bean class="org.verter.json.MappingJackson2HttpMessageConverter">
5<property name="objectMapper">
6<bean class="com.fasterxml.jackson.databind.ObjectMapper">
7<property name="dateFormat">
8<bean class="SimpleDateFormat">
9<constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss"/>
10</bean>
11</property>
12</bean>
13</property>
14</bean>
15</mvc:message-converters>
16</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.Text());
} catch (ParseException e) {
e.printStackTrace();
}
return date;
}
}
3、⾃定义注解
import java.io.IOException;
SimpleDateFormat;
import java.util.Date;
import com.JsonGenerator;
import com.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;springmvc常用标签
/**
* 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);
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论