Как исключить поле, если геттер сгенерирует исключение в json? - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь сериализовать POJO через Джексона. Класс POJO, представленный ниже

@JsonSerialize(using = CustomerSerializer.class)
public class Customer {
    private String firstName;
    private String secondName;
    private String id;
    private String address;
...........................
another setters and getters
...........................
    public String getAddress() {
        throw new RuntimeException();
    }
}

, метод getAddress выдает любое исключение, но в этом случае RuntimeException

JsonSerializer, представленный ниже, должен сериализовать этот класс и исключить поле, где геттер выдает исключение

public class CustomerSerializer extends JsonSerializer<Customer> {
    public void serialize(Customer base, JsonGenerator jgen, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {

    }
}

Это простой пример с несколькими свойствами, но в производстве у нас большая иерархия. В этом примере я могу написать сериализатор как, например:

  jgen.writeStartObject();
  jgen.writeNumberField("id", value.id);
  jgen.writeStringField("itemName", value.itemName);
  jgen.writeNumberField("owner", value.owner.id);
  jgen.writeEndObject();

, но в свойствах слишком много. Может быть, все поля кроме адреса пропущены?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...