GSON: можно ли использовать несколько пользовательских JsonSerializer для одного и того же объекта - PullRequest
1 голос
/ 22 января 2020

Использование 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...