@JsonSerialize的使用
Posted 青柳依依
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@JsonSerialize的使用相关的知识,希望对你有一定的参考价值。
实际开发中,我们一定遇到过这样的问题:前端显示和后台存储数据单位不统一,而且各有各自的理由,统一不了,那就转换吧。
每次返回给前端时再转换一遍,返回给前端的json数据,在后端里定义的往往是一个对象,如何做到优雅的转换呢?只需两步
1. 写一个负责转换的类,里面写好规则
1 public class MySerializerUtils extends JsonSerializer<Integer> { 2 @Override 3 public void serialize(Integer status, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { 4 String statusStr = ""; 5 switch (status) { 6 case 0: 7 statusStr = "暂存"; 8 break; 9 case 1: 10 statusStr = "待上报"; 11 break; 12 case 2: 13 statusStr = "待审核"; 14 break; 15 case 3: 16 statusStr = "已审"; 17 break; 18 case 4: 19 statusStr = "退回"; 20 break; 21 case -1: 22 statusStr = "已删"; 23 break; 24 default: 25 statusStr = "状态信息不符合"; 26 } 27 jsonGenerator.writeString(statusStr); 28 } 29 }
2. 在实体类上需要装换的字段上加上注解
/** * 文字型状态值 */ @JsonSerialize(using = MySerializerUtils.class) private int statusStr;
这样就转换成功了。
@JsonSerialize注解,主要用户数据转换,该注解作用在属性的getter()方法上。
以上是关于@JsonSerialize的使用的主要内容,如果未能解决你的问题,请参考以下文章
BigDecimal使用@JsonSerialize序列化自定义格式