Wie kann ich Jackson sagen, dass er den Null-String in ein Null-Literal deserialisieren soll?

Ich habe einen Webservice, der "null" als Zeichenfolge für eine Eigenschaft anstelle von null als Literal ausgibt. Dies gilt für fast alle Datentypen (Zeichenfolge oder Datum). Im Idealfall wird beispielsweise @ zurückgegebe

{
    "item" : {
        "title": "Some title",
        "expires": "2014-11-02 00:00:00"
    }
}

Aber manchmal gibt es zurück:

{
    "item" : {
        "title": "null",
        "expires": "2014-11-02 00:00:00"
    }
}

Which legt den Wert der title-Eigenschaft auf "null" fest, anstatt ihn auf null zu setzen. Oder irgendwann dieses:

{
    "item" : {
        "title": "Some title",
        "expires": "null"
    }
}

Welche die Deserialisierung fehlschlägt, weil das Datumsformat nicht übereinstimmt. Wie kann ich objectmapper konfigurieren oder meine Modellklassen mit Anmerkungen versehen, um diese Probleme während der Deserialisierung zu beheben?

Meine Modellklasse sieht so aus:

@JsonInclude(JsonInclude.Include.NON_NULL)
public class Item {
    public String title;
    @JsonFormat(shape= JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    public Date expires;
}

Es ist eine Android App, daher habe ich keine Kontrolle über den Webservice. Danke im Vorau

Antworten auf die Frage(3)

Ihre Antwort auf die Frage