@jsonserialize注解修饰Java对象的属性(如设置日期格式、设置字符串为null时的默认值、设置指定数值的精度)

1、新建序列化类xxxSerializer,继承JsonSerializer<T>,T依据要序列化的字段类型而定,可以是String,可以是Date:

@Configuration

public class xxxSerializer extends JsonSerializer<String>{

  // 设置被注解的string字段,当字段值是null时,给默认值--

  @override

  public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException{

    if(null == value){

      gen.writeString("--");

    }else{

      gen.writeString(value);

    }

  }

}

 

2、在目标Java对象的属性上,使用注解@JsonSerialize(nullUsing=xxxSerializer .class )修饰即可实现

 

注:同理,若要设置日期类型字段的值格式。可以如下:

public class Example {   

@JsonSerialize(using = DateSerializer.class)   

private Date date;

}

public class DateSerializer extends JsonSerializer<Date> {   

@Override    public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers) throws IOException {     

  gen.writeString(new SimpleDateFormat("yyyy-MM-dd").format(value));   

}

}

posted on 2023-05-11 15:54  黑子菜园  阅读(717)  评论(0)    收藏  举报

导航