Вы можете попробовать использовать @JsonIgnore
, чтобы полностью игнорировать помеченное свойство.С точки зрения аннотации, я не думаю, что есть опция «if lodaded».
Конечно, вы могли бы написать собственный маршаллер, который проверяет тип и решает, как поступить.
Я, например, написал сериализатор для пользовательского типа данных
public class PropertyValueSerializer extends JsonSerializer<PROPERTY_VALUE> {
@Override
public void serialize(PROPERTY_VALUE property_value, JsonGenerator jsonGenerator,
SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
jsonGenerator.writeStartObject();
jsonGenerator.writeFieldName(property_value.getKey());
jsonGenerator.writeString(property_value.getValue());
jsonGenerator.writeEndObject();
}
}
, который затем используется для сериализации этого типа путем добавления некоторых аннотаций:
@JsonSerialize(using = PropertyValueSerializer.class)
@JsonDeserialize(using = PropertyValueDeserializer.class)
public class PROPERTY_VALUE implements Serializable{
private String key;
private String value;
Этот пользовательскийСериализатор дает вам полный контроль, но, конечно, немного больше работы, чем простая аннотация.