@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")@JsonSubTypes({ @JsonSubTypes.Type(value = MacAddrRequest.class, name = "MacAddrRequest") })public abstract class Message {
private String messageId;
public Message(String messageId) { setMessageId(messageId); }
public String getMessageId() { return messageId; }
public void setMessageId(String messageId) { this.messageId = messageId; }}
@JsonTypeName(value = "MacAddrRequest")public class MacAddrRequest extends Message { public MacAddrRequest(String messageId) { super(messageId); }}
private ObjectMapper mapper = new ObjectMapper();
mapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
String m1 = mapper.writeValueAsString(new MacAddrRequest(UUID.randomUUID().toString()));
private ObjectMapper objectMapper = new ObjectMapper();
Message m = objectMapper.readValue(request, Message.class); if (m instanceof MacAddrRequest){
response = "Ok";
}
--
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 jackson-user...@googlegroups.com.
To post to this group, send email to jackso...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
@JsonProperty("messageId")
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, visible = true, property = "@class")public class Packet { private Message message; public Packet(@JsonProperty("message") Message message) { setMessage(message); } public Message getMessage() { return message; } public void setMessage(Message message) { this.message = message; }}
private ObjectMapper objectMapper = new ObjectMapper();
Packet p = objectMapper.readValue(request, Packet.class); if (p.getMessage() instanceof MacAddrRequest){
response = "Ok";
}