【发布时间】:2020-11-30 09:42:50
【问题描述】:
我有一个类,我想用 Jackson 反序列化和序列化。目前这就是我所拥有的
class Person {
@JsonAlias("fullName")
@JsonDeserialize(using = NameDeserializer.class)
String name;
}
我希望能够读取{"fullName": "John Doe"} 并写入{"name": "John Doe"}。
我也在使用 Lombok 来创建 setter 和 getter,所以我不能在方法级别使用 @JsonProperty。知道我将如何处理这个问题,因为目前看来@JsonAlias 似乎没有按预期工作。我正在使用 Jackson 2.10 来映射对象。
编辑
原来使用 Alias 效果很好。虽然在第一次弄清楚它是如何不起作用的时,我重写了 lombok setter
@JsonProperty("firstName")
public void setName(String name){
this.name = name;
}
从这里我发现我的反序列化器实际上是问题所在。
【问题讨论】:
-
你可以显式编写setter getter(不用担心lombok没有问题)并在它们上使用@JsonProperty
-
除了重写setter还有其他解决方案吗?
标签: java json serialization jackson deserialization