zoukankan      html  css  js  c++  java
  • 关于@JsonSerialize注解的使用方法

    我们做后端开发的有时候要返回给前端的数据格式不符合怎么办?

    举个例子,比如一张表中的时间,数据库中存储的是yyy-mm-dd hh:mm:ss 这样的形式,而前段需要的是精确到秒的格式,那我们不可能直接把这种格式的数据直接返回给前端吧?!

    直接返回回去会跟前端掐起来的。。。。那怎么办?从数据库查出来的时候去转换一下?。嗯可以,但是问题又来了,那我在A方法中查询要转换一下,B方法中要转换一下...

    这样就会导致代码冗余。除了使用自定义工具类,还有一种方法更直接,那就是使用@JsonSerialize(com.fasterxml.jackson.databind.annotation.JsonSerialize)注解。

    使用步骤:

    1.在实体类中在要转换的字段上加上该注解,如下:

        /** 订单创建时间 */
        @JsonSerialize(using = DateToLongSerializer.class)
        private Date createTiem;

    2.并指定一个格式化的类。如下:

    public class DateToLongSerializer extends JsonSerializer<Date> {
    
        @Override
        public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
            jsonGenerator.writeNumber(date.getTime() / 1000);
        }
    }

     数据存储在数据库中的格式:

    转换后的效果(返回给前端的json格式):

    再介绍一个注解:

    @JsonIgnore 该注解的作用是转成json时不返回给前端
    路漫漫其修远兮,吾将上下而求索
  • 相关阅读:
    C#循环页面form中控件
    鼠标放到按钮上页面样式发生变化
    access INSERT INTO 语句的语法错误
    更改水晶报表数据源
    C# byte[]与string互转
    禁用右键
    showModalDialog IE9 报错
    ListBox 循环删除当前项
    showModalDialog 刷新本页面,不重新发送信息,则无法刷新网页,Page_PreRender
    敏捷模式开发(转)
  • 原文地址:https://www.cnblogs.com/-brl/p/10140180.html
Copyright © 2011-2022 走看看