zoukankan      html  css  js  c++  java
  • @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 status;

    这样就转换成功了。

    @JsonSerialize注解,主要用于数据转换,该注解作用在该属性的getter()方法上。



  • 相关阅读:
    Django【十五】pillow模块使用
    Django【十四】内置的anth认证
    Django【十三】form组件。
    Django【十二】中间价
    Django【十一】cookie-sesson
    Django【十】Ajax
    Django【八】多表操作
    Django【九】事务和锁
    python协程
    python多线程
  • 原文地址:https://www.cnblogs.com/luxianyu-s/p/9640588.html
Copyright © 2011-2022 走看看