Использование GSON, если возможно указать несколько JsonSerializer для одного объекта, чтобы можно было программно предоставлять различные данные для него?
Например, у меня есть этот POJO
public class Person {
private Long id;
private String name;
private String email;
private Set<Addresses> addresses;
}
и этот соответствующий JsonSerializer:
public static final JsonSerializer<Person> serializer1 =
(Person src, java.lang.reflect.Type typeOfSrc, JsonSerializationContext context) -> {
JsonObject personJson = new JsonObject();
personJson.addProperty("name", src.getName());
personJson.addProperty("email", src.getEmail());
return personJson;
}
Теперь я могу добавить второй JsonSerializer, подобный этому, чтобы предоставить альтернативные данные? Также, если так, как бы вы сказали Гсону провести различие между 2?
public static final JsonSerializer<Person> serializer2 =
(Person src, java.lang.reflect.Type typeOfSrc, JsonSerializationContext context) -> {
JsonObject personJson = new JsonObject();
personJson.addProperty("name", src.getName());
personJson.addProperty("email", src.getEmail());
personJson.add("addresses", toJsonArray(src.getAddresses()))
return personJson;
}