zoukankan      html  css  js  c++  java
  • 几个关于json序列化 的注解

    一.@JsonProperty

    1.此注解用于属性上,作用是把该属性的名称序列化为另外一个名称。例如:

     @JsonProperty("name") 
     private String Name2; 

    把name2 在序列化的时候变成name。

    JsonProperty Maven依赖是

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version></version>
    </dependency>

    二、@JsonSerialize

    注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码。例如将date转成long型

    1.自定义转换规则

    public class Date2LongSerialzer extends JsonSerializer<Date>{
    
        @Override
        public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers)
                throws IOException, JsonProcessingException {
            // TODO Auto-generated method stub
            gen.writeNumber(value.getTime()/1000);
        }
    
    }

    2.在属性上使用注解

    @JsonSerialize(using = Date2LongSerialzer.class)

    三、@JsonInclude(JsonInclude.Include.NON_NULL)

    在给前端返回的json数据上尽量不要有空的或者null出现,所以使用@JsonInclude(Include.NON_NULL) 这个注解放在类头上就可以解决。 实体类与json互转的时候 属性值为null的不参与序列化

    四、还有其他一些注解可以参照 https://www.cnblogs.com/guijl/p/3855329.html

     

  • 相关阅读:
    Struts2
    HIbernate缓存
    spring的静态代理和动态代理
    JVM与垃圾回收机制(GC)和类的生命周期
    java开发设计六大基本原则
    数据表链表结构
    HashMap的底层实现
    string与位运算
    log4j和logback
    C#深入类的方法
  • 原文地址:https://www.cnblogs.com/li-zhi-long/p/9963144.html
Copyright © 2011-2022 走看看