Problem : Need to conditionaly deserialize to string or object based on the incoming json feed :
And the custom Deserializer looks Like
@JsonDeserialize(using = LocationDeserializer.class)
public void setLocation(Location location) {
And the custom Deserializer looks Like
@Override
public Location deserialize(JsonParser jp, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
mapper.setDeserializationConfig(ctxt.getConfig());
jp.setCodec(mapper);
String city = null;
Location location = null;
if(jp.getCurrentToken() == JsonToken.VALUE_STRING) {
city = jp.readValueAs(String.class);
location = new Location();
location.setCity(city);
} else {
location = jp.readValueAs(Location.class);
}
return location;
}
No comments:
Post a Comment