Я бы хотел, чтобы Джексон десериализовал класс с помощью следующего конструктора:
public Clinic(String name, Address address)
Десериализовать первый аргумент несложно. Проблема в том, что Address определяется как:
public class Address {
private Address(Map<LocationType, String> components)
...
public static class Builder {
public Builder setCity(String value);
public Builder setCountry(String value);
public Address create();
}
}
и устроен так: new Address.Builder().setCity("foo").setCountry("bar").create();
Есть ли способ получить пары ключ-значение от Джексона, чтобы самому создать адрес? В качестве альтернативы, есть ли способ заставить Джексона использовать сам класс Builder?
@JsonPOJOBuilder
аннотации, переименуйте «create» в «build» и аннотируйте каждый из установщиков построителя с помощью@JsonProperty
.