Ich brauche die leere Zeichenfolge (""
) als null
in Spring MVC zu behandeln. Dies, weil ich festgestellt habe, dass, wenn ich ein Formularfeld (mit Angulars ng-Modell) bearbeite, das ursprünglich undefined
war, dann lösche ich es auf leer, wird Angular diese Bean-Eigenschaft als leere Zeichenfolge senden. Wenn ich einen solchen Nullwert nicht berühre, wird er nicht in der JSON-Nutzlast gesendet und daher als null behandelt.Jackson ignoriert ACCEPT_EMPTY_STRING_AS_NULL_OBJECT
Ich habe Jackson mit der ACCEPT_EMPTY_STRING_AS_NULL_OBJECT
DeserializationFeature
in meinem Frühling Kontext konfiguriert. Konfiguration unten:
Noch sieht es so aus, als dekodiert es leere Strings als leere Strings und nicht als null. Ich habe debugged und ich konnte "" in der Nutzlast sehen. Hier ist ein Beispiel von einer Admin-Seite
{
"id":"ADMIN.NOTIFIER_SMTP",
"host":"aa.bb.cc",
"protocol":"POP",
"securityProtocol":"PLAIN",
"username":"", <----- shall be null on server, I don't care about client
"passwordSet":false
}
Frage ist: ist etwas falsch in meiner Konfiguration? Wie sage ich Jackson, dass er leer als null behandeln soll?
Tut mir leid, mit @ JsonDeserialize auf jede Eigenschaft ist eine schreckliche Vorgehensweise! Ich habe viele "String" -Eigenschaften. Vielleicht sollte ich einen solchen Deserialisierer als Global ... auf irgendeine Art fördern –