package org.springframework.social.instagram.api.impl; import java.io.IOException; import org.codehaus.jackson.JsonParser; import org.codehaus.jackson.JsonProcessingException; import org.codehaus.jackson.JsonToken; import org.codehaus.jackson.map.JsonDeserializer; abstract class AbstractInstagramDeserializer<T> extends JsonDeserializer<T> { public <C> C deserializeResponseObject(JsonParser jp, Class<C> container, Class<?> containee) throws IOException, JsonProcessingException { while (jp.nextToken() != JsonToken.END_OBJECT) { String fieldname = jp.getCurrentName(); jp.nextToken(); if("meta".equals(fieldname)) { jp.clearCurrentToken(); // we can ignore this for now jp.nextToken(); } else if("data".equals(fieldname)) { try { return container.getConstructor(containee).newInstance(jp.readValueAs(containee)); } catch (Exception e) { return null; } } } return null; } }