Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Example of Polymorphic Deserialization using Jackson
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value=AudioAttachment.class, name="audio"),
@JsonSubTypes.Type(value=LinkAttachment.class, name="link")
})
public class Attachment {
}
@JsonNaming(PropertyNamingStrategy.LowerCaseWithUnderscoresStrategy.class)
public class Audio {
public int aid;
public int ownerId;
}
public class AudioAttachment extends Attachment {
public Audio audio;
}
public class Link {
public String url;
public String title;
}
public class LinkAttachment extends Attachment {
public Link link;
}
@juli0mendes
Copy link

juli0mendes commented Dec 5, 2018

Excellent tutorial!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment