Wie deaktiviere ich mit Jackson 2.1 die Deaktivierung, die fail_on_empty beans
die Fehlermeldung zu deaktivieren scheint?
Ich gehe davon aus, dass dies nur die einfachste Sache der Welt ist, aber zum Teufel ist es spät und ich konnte kein einfaches Tutorial oder etwas besonders offensichtliches aus dem finden api
. SerializationFactory
? Warum sollten sie es so unintuitiv machen und dann die Fehlermeldung so einfach erscheinen lassen?
Obwohl ich tun wie die Fehlermeldung, meine ich, ist es besser als ein NPE.
Ich gehe davon aus, dass es eine Möglichkeit gibt, dies mithilfe von Anmerkungen zu tun - aber ich möchte sie überhaupt nicht für die vereinfachende Arbeit verwenden, die ich mache!
@JsonSerialize
deaktivieren könnenFAIL_ON_EMPTY_BEANS
?Wenn Sie Spring Boot verwenden, können Sie die folgende Eigenschaft in der Datei application.properties festlegen. spring.jackson.serialization.FAIL_ON_EMPTY_BEANS = false
quelle
Sie können das gleiche Problem auch erhalten, wenn Ihre Klasse keine öffentlichen Methoden / Eigenschaften enthält. Normalerweise habe ich dedizierte DTOs für API-Anfragen und -Antworten, die als öffentlich deklariert wurden, aber in einem Fall vergessen, die Methoden ebenfalls öffentlich zu machen - was in erster Linie die "leere" Bean verursachte.
quelle
Sie können die Klasse wahrscheinlich auch mit Anmerkungen versehen
@JsonIgnoreProperties(ignoreUnknown=true)
, um die in der Klasse nicht definierten Felder zu ignorierenquelle
Wenn Sie ein JSON-Objekt ohne zusätzliche Felder erhalten möchten, fügen Sie diese Anmerkung Ihrer Klasse hinzu. Sie hat perfekt für mich funktioniert.
Sie können diese Zeile auch in Ihre application.properties-Datei einfügen, sie fügt Ihrem JSON jedoch ein zusätzliches Feld hinzu.
quelle
Wenn Sie org.codehaus.jackson.map.ObjectMapper verwenden, dann pls. Verwenden Sie die folgenden Zeilen
quelle
Verwenden Sie in Jersey Rest Services einfach die JacksonFeatures-Anmerkung ...
quelle
In meinem Fall habe ich es versäumt, eine @ JsonProperty-Annotation in eines der Felder zu schreiben, die diesen Fehler verursacht haben.
quelle
Fügen Sie hier eine Lösung für ein anderes Problem hinzu, das sich jedoch mit demselben Fehler manifestiert. Achten Sie beim Erstellen von json im laufenden Betrieb (als API-Antworten oder was auch immer) darauf, wörtliche doppelte Anführungszeichen in Ihren Zeichenfolgenelementen zu vermeiden. Möglicherweise verbrauchen Sie Ihren eigenen missgebildeten Json.
quelle
Um dieses Problem zu beheben, konfigurieren Sie Ihre JsonDataFormat-Klasse wie folgt
das ist fast gleichbedeutend mit,
quelle
Hallo,
Wenn ich benutze
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false)
Meine JSON-Objektwerte sind im eckigen Seitenmittel als Antwort leer
Gelöst mit Hilfe nur der folgenden Einstellungen
quelle
In meinem Fall musste ich es nicht deaktivieren, sondern musste diesen Code über meine Klasse setzen: (und dies löste mein Problem)
quelle