@Override public Item deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { ObjectCodec codec = jp.getCodec(); ObjectNode treeNode = codec.readTree(jp); String type = treeNode.get("itemType").textValue(); Class<? extends Item> objectClass = classes.get(type); if (objectClass == null) { objectClass = CustomItem.class; } else { treeNode.remove("itemType"); } Item item = codec.treeToValue(treeNode, objectClass); item.setItemId(treeNode.get("itemId").asText()); return item; } }
@Override public Item deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException { ObjectCodec codec = jp.getCodec(); ObjectNode treeNode = codec.readTree(jp); String type = treeNode.get("itemType").textValue(); Class<? extends Item> objectClass = classes.get(type); if (objectClass == null) { objectClass = CustomItem.class; } else { treeNode.remove("itemType"); } Item item = codec.treeToValue(treeNode, objectClass); item.setItemId(treeNode.get("itemId").asText()); return item; } }