Я пытаюсь сериализовать 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();
, но в свойствах слишком много. Может быть, все поля кроме адреса пропущены?