*POJOs:*

*All of them were created in separate java files. @Builder, @Getter, 
@ToString, @NonNull - lombok annotations**@Nonnull, @Valid - javax 
annotations*

@Builder
@Getter
@ToString
public class DummyParentClass {
    @NonNull
    @Nonnull
    private DummyAbstractType dummyAbstractType;

    @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = 
JsonTypeInfo.As.EXTERNAL_PROPERTY, property = "dummyAbstractType")
    @Valid @Nonnull @NonNull private DummyAbstract dummyAbstract;
}



public enum DummyAbstractType {
    A
}



@JsonSubTypes({
        @JsonSubTypes.Type(value = DummyAbstractImplA.class, name = "A")
})
public abstract class DummyAbstract {

    public abstract void validate();

}



@Builder
@Getter
@ToString
public class DummyAbstractImplA extends DummyAbstract {
    @Nonnull
    @NonNull
    private String a;
    @Nonnull @NonNull private String b;

    @Override
    public void validate() {

    }
}


*Deserialise Code:*
String json2 = "{\n" +
" \"dummyAbstract\": {\n" +
" \"a\": \"as\",\n" +
" \"b\": \"as\"\n" +
" },\n" +
" \"dummyAbstractType\": \"A\"\n" +
"}";

DummyParentClass dummyParentClass = objectMapper.readValue(json2, 
DummyParentClass.class);

System.out.println(dummyParentClass);


*Error:*
com.fasterxml.jackson.databind.exc.ValueInstantiationException: Cannot 
construct instance of `dummy.DummyParentClass`, problem: Internal error: no 
creator index for property 'dummyAbstract' (of type 
com.fasterxml.jackson.databind.deser.impl.FieldProperty)
 at [Source: (String)"{
  "dummyAbstract": {
    "a": "as",
    "b": "as"
  },
  "dummyAbstractType": "A"
}"; line: 7, column: 1]

    at 
com.fasterxml.jackson.databind.exc.ValueInstantiationException.from(ValueInstantiationException.java:47)
    at 
com.fasterxml.jackson.databind.DeserializationContext.instantiationException(DeserializationContext.java:2047)
    at 
com.fasterxml.jackson.databind.DeserializationContext.handleInstantiationProblem(DeserializationContext.java:1400)
    at 
com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapInstantiationProblem(BeanDeserializerBase.java:1866)
    at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeUsingPropertyBasedWithExternalTypeId(BeanDeserializer.java:1090)
    at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeWithExternalTypeId(BeanDeserializer.java:929)
    at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:349)
    at 
com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:184)
    at 
com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
    at 
com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)
    at 
com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3629)
    at 
com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3597)

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jackson-user/f946290f-2eca-46f2-bc3b-7afc9cbc7b5dn%40googlegroups.com.

Reply via email to