关于后端对实体类数据进行格式化输出的方法及使用@JsonSerialize和@JsonFormat

关于@JsonFormat(pattern = "yyyy-MM-dd", locale = "zh", timezone="GMT+8")的用法和使用场景

 

@JsonFormat注解:可以将实体类中的日期格式进行格式化输出。

 

例:

 

(pattern = "yyyy-MM-dd", locale = "zh", timezone="GMT+8")
public Date getCreated() {
return created;
}

 

从数据库读取出来的是一段时间戳,在ssm框架中加上这个就可以控制其输出格式。

 

@JsonSerialize(using=StatusJsonSerializer.class)     该注解:可以将实体类中按照自己心仪的格式进行格式化输出。
public Object getUserStatus() {
return userStatus;
}

 

创建StatusJsonSerializer.java文件

 

package cn.mollie.serializer;

import java.io.IOException;


import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

public class StatusJsonSerializer extends JsonSerializer<Integer>{

@Override
public void serialize(Integer value, JsonGenerator gen,
SerializerProvider serializers) throws IOException,
JsonProcessingException {
// TODO Auto-generated method stub

switch (value) {
case -1:
gen.writeString("离职");
break;
case 0:
gen.writeString("空闲");
break;
case 1:
gen.writeString("工作");
break;
default:
gen.writeString("空闲");
break;
}
}

}

 

 

需要注意的一点:当需要对一个整形格式化成非整形时,需要把实体类中的元素设置为Object类型。

posted @ 2019-03-12 08:14  mollie_x  阅读(2621)  评论(2编辑  收藏  举报