SpringBoot 序列化器注解使用方法
来源:互联网 发布:淘宝红包套现被处罚 编辑:程序博客网 时间:2024/05/19 19:39
Json解析工具Jackson
@JsonIgnoreProperties
此注解是类注解,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。
@JsonIgnore
此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。
@JsonFormat
此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = “yyyy-MM-dd HH-mm-ss”)
@JsonSerialize
此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。
public class CustomDoubleSerialize extends JsonSerializer<Double> { private DecimalFormat df = new DecimalFormat("##.00"); @Override public void serialize(Double value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { jgen.writeString(df.format(value)); } }
@JsonDeserialize
此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize
public class CustomDateDeserialize extends JsonDeserializer<Date> { private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); @Override public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { Date date = null; try { date = sdf.parse(jp.getText()); } catch (ParseException e) { e.printStackTrace(); } return date; } }
完整例子:
“`
//表示序列化时忽略的属性
@JsonIgnoreProperties(value = { “word” })
public class Person {
private String name;
private int age;
private boolean sex;
private Date birthday;
private String word;
private double salary;
public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public boolean isSex() { return sex; } public void setSex(boolean sex) { this.sex = sex; } public Date getBirthday() { return birthday; } // 反序列化一个固定格式的Date @JsonDeserialize(using = CustomDateDeserialize.class) public void setBirthday(Date birthday) { this.birthday = birthday; } public String getWord() { return word; } public void setWord(String word) { this.word = word; } // 序列化指定格式的double格式 @JsonSerialize(using = CustomDoubleSerialize.class) public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public Person(String name, int age) { this.name = name; this.age = age; } public Person(String name, int age, boolean sex, Date birthday, String word, double salary) { super(); this.name = name; this.age = age; this.sex = sex; this.birthday = birthday; this.word = word; this.salary = salary; } public Person() { } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", sex=" + sex + ", birthday=" + birthday + ", word=" + word + ", salary=" + salary + "]"; }
}
“`
阅读全文
0 0
- SpringBoot 序列化器注解使用方法
- SpringBoot注解
- springboot注解
- SpringBoot注解
- SpringBoot 注解
- springboot注解
- 【SpringBoot系列】SpringBoot注解详解
- [springBoot系列]--springBoot注解大全
- [springBoot系列]--springBoot注解大全
- [springBoot系列]--springBoot注解大全
- [springBoot系列]--springBoot注解大全
- redis-springboot-redistemplate更改序列化方式
- JAXB序列化常用注解
- SpringBoot自定义参数注解
- springboot 常用注解
- springboot常用注解二
- 7springboot 注解
- springBoot 注解失败
- 数据库
- Hive(十八)--全局排序
- codevs 1079 回家 Floyd 解题报告
- StringBoot集成Rabbit,根据业务返回ACK
- windows环境下通过c++使用redis
- SpringBoot 序列化器注解使用方法
- 代理模式
- 【网络流24题】汽车加油行驶(分层图+最短路)
- Spring Boot配置拦截器
- Oaecle 命令行基础操作篇(4)
- 在Linux Ubuntu16.04系统下安装tomcat8.5.20
- SpringBoot多数据源配置事务
- 手工注入一般步骤
- 《Spring实战》读书笔记1