https://blog.csdn.net/spicehava1/article/details/79898949
java中JsonSerializer用法,前后端单位转换必备
-
后端用的时间单位是Date,前端用的秒
-
又比如,后端用的金额单位是分,前端用的是元
-
总之,单位不统一,而且各有各自的理由,统一不了,那就转换吧。
每次返回给前端时再转换一遍,返回给前端的json数据,在后端里定义的往往是一个对象,如何做到优雅的转换呢?只需两步1. 写一个负责转换的类,里面写好规则
import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import java.io.IOException; import java.util.Date; /** * @version 1.0 2016/12/7 * @since 1.0 */ public class Date2LongSerialize extends JsonSerializer<Date> { @Override public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { jsonGenerator.writeNumber(date.getTime() / 1000); } }
2. 在返回的参数里加上注解
@Data @JsonNaming(PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy.class) public class PledgeDetailItemVO implements Serializable { private static final long serialVersionUID = 2308418084162500432L; private String remark; @JsonSerialize(using = Date2LongSerialize.class) private Date addTime; }
这样就能做到自动转换了!
</div> <p class="tags">标签:<a href="http://www.liaoshixiong.cn/tag/jsonserializer/">jsonserializer</a>, <a href="http://www.liaoshixiong.cn/tag/json/">json</a>, <a href="http://www.liaoshixiong.cn/tag/%E5%8D%95%E4%BD%8D%E8%BD%AC%E6%8D%A2/">单位转换</a></p> </div>
网友评论