【发布时间】:2019-10-20 05:31:49
【问题描述】:
仅使用两个非常基本的示例.. 是否有将 JSON 反序列化为 POJO 的替代方法,我不需要创建设置器并且不需要在每个字段上声明 @JsonProperty?
@JsonProperty 看起来乏味且重复
Setter 似乎削弱了封装性。
使用设置器:
public class Person{
private int age;
private String name;
public int getAge(){
return age;
}
public void setAge(int age){
this.age = age;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
}
使用@JsonProperty:
public class Person{
@JsonProperty private int age;
@JsonProperty private String name;
public int getAge(){
return age;
}
public String getName(){
return name;
}
}
【问题讨论】:
-
你可以在构造函数上使用
@JsonCreator,检查这些examples -
chrsblck,即使使用Jsoncreator,自定义字段名也得使用JsonProperty。
-
我问这个问题的主要原因是因为在我上一份工作中,我创建了 POJO,它会自动反序列化,没有任何注释。它只需要吸气剂(无论如何我都需要)。我应该,但没有,问这是怎么做到的。
-
@juice,只要json字段名和java类字段名相同,就可以轻松序列化/反序列化,无需任何jsonProperty。
-
昨天我尝试将 JSON 反序列化为具有两个 BigDecimal 作为字段的对象时这样做了,除非我有设置器或使用 @JsonProperty 进行注释,否则它将无法工作。
标签: java spring spring-boot deserialization