当前位置: 首页 > 工具软件 > JsonSerialize > 使用案例 >

使用 @JsonSerialize 转换日期

陆博易
2023-12-01

springmvc 在将日期对象转换为字符串时, 一般默认会转换为长整型,假如我们需要自己定义格式,通常会写一个类继承JsonSerializer
假如在对象中需要将日期转换为我们需要的格式可以在对应的实体对象的get方法中使用注解

 

自定义转换类:

public class JsonDateTypeConvert extends JsonSerializer<Date>{
	/**
	 * @param value 是要转换的日期
	 * @param gen 为一个json对象生成器
	 * */
	@Override
	public void serialize(Date value,JsonGenerator gen, SerializerProvider serializers)throws IOException, JsonProcessingException {
		//定义日期字符串转换对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
		//将日期转换为指定格式字符串
		String dateStr = sdf.format(value);
		//将此字符串写入到json对象中
		gen.writeString(dateStr);
	}
}

实体类的get 方法中加上注解

	@JsonSerialize(using=JsonDateTypeConvert.class)
	public Date getBeginDate() {
		return beginDate;
	}

	@JsonSerialize(using=JsonDateTypeConvert.class)
	public Date getEndDate() {
		return endDate;
	}

PS:

     *    在获取日期的get方法上注解:
     *    @JsonSerialize(using=JsonDateTypeConvert.class)
     *          using 属性:指定使用哪个类解析、

     *
     * 使用场景:
     *    当本类对象在Controller 中将要被转换成Json格式时 (内部会调用get方法取出转换json格式)
     *    而被注解的类方法返回值,会被我们自定义的类所解析成指定的字符串格式

 类似资料: