【发布时间】:2018-08-17 16:08:40
【问题描述】:
我正在尝试使用 Jackson 从父节点获取值。
我知道这可以通过自定义反序列化器实现,但是样板文件太多,因为您突然必须手动处理所有内容。
这听起来很简单,但没有找到方法。
为了说明我想要什么 - 如果我们有一个简单的 User 和 Address...
@JsonDeserialize(builder = User.Builder.class)
public class User
{
private long id;
private String firstName;
private Address address;
...
public static class Builder
{
public Builder withId(long id);
public Builder withFirstName(String value);
public Builder withAddress(Address address);
public User create();
}
}
如果我们有相同的地址
@JsonDeserialize(builder = Address.Builder.class)
public class Address
{
...
public static class Builder
{
public Builder withUserId(long id); // is there a way to ask for the parent id here?
public Builder withStreetName(String value);
public Address create();
}
}
示例输入:
{
"id": 7,
"firstName" : "John",
"lastName" : "Smith",
"address" : {
"streetName": "1 str"
}
}
【问题讨论】: