Java 如果getter在json中抛出异常,如何排除字段?

Java 如果getter在json中抛出异常,如何排除字段?,java,jackson,Java,Jackson,我试图通过jackson将POJO连载。 下面提供了POJO类 @JsonSerialize(using = CustomerSerializer.class) public class Customer { private String firstName; private String secondName; private String id; private String address; ........................... anoth

我试图通过jackson将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必须序列化此类并排除getter引发异常的字段

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

    }
}

但是在prod中有太多的属性。可能是,它是否可能传递除address之外的所有字段?

我想说,您可以告诉Jackosn忽略您知道会导致异常的属性,例如,通过类本身的
@JsonIgnore
或mixin,或者-因为您正在编写自定义序列化程序-只需在try-catch块中调用getter并相应地处理异常。如果您的目标是在封送和取消封送期间跳过一些字段,则只需放入
JsonIgnoreProperties
并传入希望忽略的字段列表。这应该是干净和准确的。
  jgen.writeStartObject();
  jgen.writeNumberField("id", value.id);
  jgen.writeStringField("itemName", value.itemName);
  jgen.writeNumberField("owner", value.owner.id);
  jgen.writeEndObject();