Mapa un campo JSON que puede tener diferentes tipos con Jackson?

Obtengo JSON de un servicio web y no puedo influir en el formato JSON. El código JSON a continuación es solo un ejemplo para ilustrar el problema. El campocars puede ser un objeto que contengaCar objetos o puede ser una cadena vacía. Si pudiera cambiar el servicio web, cambiaría la cadena vacía para que sea un objeto vacío como"cars" : {} en lugar de"cars" : "".

Cuando intente asignar JSON a este objeto Java:

public class Person {
    public int id;
    public String name;
    public Map<String, Car> cars;
}

Esto funciona

{
    "id" : "1234",
    "name" : "John Doe",
    "cars" : {
        "Tesla Model S" : {
            "color" : "silver",
            "buying_date" : "2012-06-01"
        },
        "Toyota Yaris" : {
            "color" : "blue",
            "buying_date" : "2005-01-01"
        }
    }
}

Y esto falla:

{
    "id" : "1",
    "name" : "The Dude",
    "cars" : ""
}

¿Cuál sería la mejor manera de manejar este caso en Jackson? Si hay una cadena vacía, me gustaría obtenernull para el campocars. Intenté usarACCEPT_EMPTY_STRING_AS_NULL_OBJECT, pero no ayudó.

Respuestas a la pregunta(1)

Su respuesta a la pregunta