SpringBoot 序列化器注解使用方法
【摘要】
Json解析工具Jackson
@JsonIgnoreProperties 此注解是类注解,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。 @JsonIgnore 此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。 @JsonForma...
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 + "]";
-
}
-
-
}
文章来源: springlearn.blog.csdn.net,作者:西魏陶渊明,版权归原作者所有,如需转载,请联系作者。
原文链接:springlearn.blog.csdn.net/article/details/102425346
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)