주석 필드의 타겟 유형에 따라 다르게 작동하는 Jackson 디시리얼라이저를 구성하려고합니다.타입 인식 Jackson 디시리얼라이저 만들기
public class Car {
@JsonSerialize(using=IdSerializer.class)
@JsonDeserialize(using=IdDeserializer.class)
String id
}
public class Bus {
@JsonSerialize(using=IdSerializer.class)
@JsonDeserialize(using=IdDeserializer.class)
Id id
}
잭슨 시리얼 라이저는 데이터를 변환되는 유형을 알고, 그래서 이것은 노력하고 있습니다 :
public class IdSerializer extends JsonSerializer<Object> {
@Override
public void serialize(Object value, JsonGenerator jsonGen, SerializerProvider provider) throws IOException {
// value is the annotated field class
if(value instanceof String)
jsonGen.writeObject(...);
else if (value instanceof Id)
jsonGen.writeObject(...);
else
throw new IllegalArgumentException();
}
}
잭슨 디시리얼라이저는 데이터 변환합니다되는 대상 유형을 모르는 것 같다 :
public class IdDeserializer extends JsonDeserializer<Object> {
@Override
public Object deserialize(JsonParser jp, DeserializationContext context) throws IOException {
// what is the annotated field class?
}
}
일부 형식 정보를 직렬화에 추가 할 수 있습니다. –
@KyleRenfro 코드 샘플을 제공 할 수 있습니까? 감사. –