Deserialización JSON personalizada con Jackson

Estoy usando elAPI de Flickr. Al llamar alflickr.test.login Método, el resultado JSON predeterminado es:

{
    "user": {
        "id": "21207597@N07",
        "username": {
            "_content": "jamalfanaian"
        }
    },
    "stat": "ok"
}

Me gustaría analizar esta respuesta en un objeto Java:

public class FlickrAccount {
    private String id;
    private String username;
    // ... getter & setter ...
}

Las propiedades JSON se deben asignar de esta manera:

"user" -> "id" ==> FlickrAccount.id
"user" -> "username" -> "_content" ==> FlickrAccount.username

Desafortunadamente, no puedo encontrar una forma agradable y elegante de hacer esto usando Anotaciones. Mi enfoque hasta ahora es leer la cadena JSON en unMap<String, Object> y obtener los valores a partir de ahí.

Map<String, Object> value = new ObjectMapper().readValue(response.getStream(),
        new TypeReference<HashMap<String, Object>>() {
        });
@SuppressWarnings( "unchecked" )
Map<String, Object> user = (Map<String, Object>) value.get("user");
String id = (String) user.get("id");
@SuppressWarnings( "unchecked" )
String username = (String) ((Map<String, Object>) user.get("username")).get("_content");
FlickrAccount account = new FlickrAccount();
account.setId(id);
account.setUsername(username);

Pero creo que esta es la forma más no elegante, nunca. ¿Hay alguna forma simple, ya sea utilizando Anotaciones o un Deserializador personalizado?

Esto sería muy obvio para mí, pero por supuesto no funciona:

public class FlickrAccount {
    @JsonProperty( "user.id" ) private String id;
    @JsonProperty( "user.username._content" ) private String username;
    // ... getter and setter ...
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta