Ich habe riesige JSON-Dokument und entsprechende Jaskon Modelle, die diesem JSON zugeordnet sind. In einigen Fällen ist es nicht möglich, das erforderliche JSON-Dokument mit allen Objekten zu erstellen, da einige Daten nicht vorhanden sind.Jackson: Serialize Null-Objekt als leer
zum Beispiel habe ich folgende Modelle:
class First {
private firstField;
private secondField;
etc...
}
class Second {
private firstField;
private secondField;
etc...
}
class General {
private First first;
private Second second;
etc...
}
Und es besteht die Möglichkeit, nur erste Instanz zu bevölkern:
In üblichen Fällen wird es so etwas wie dies serialisiert werden:
{
"first":{
"firstField":"some_value",
"secondField":"some_value"
},
"second":null
}
Aber mein Ziel ist es, allgemeine Klasse so etwas zu serialisieren:
{
"first":{
"firstField":"some_value",
"secondField":"some_value"
},
"second":{
"firstField":"null",
"secondField":"null"
}
}
Es ist möglich, dies mit erreichen folgenden Änderungen der allgemeinen Klasse, um ihre Mitglieder zu initialisieren standardmäßig mit Standardkonstruktoren:
class General {
private First first = new First();
private Second second = new Second()
etc...
}
Aber dieser Ansatz führt dazu, dass zu viele Änderungen um bestehende Modelle und ich bin nicht sicher, dass es der beste Ansatz ist. Ist es möglich, einen benutzerdefinierten Serializer zu erstellen, der das selbst erledigt?
Herausgegeben nach https://stackoverflow.com/users/1898563/michael Vorschlag:
die Hauptidee Serializer Also, zu schaffen, die zu prüfen wären in der Lage, ob Instanz null ist und wenn es null ist, sollte es in der Lage sein, neue Instanz erstellen Standard verwenden Konstruktor, Hinweis: dieser Serializer sollte nicht auf spezifische Second
Klasse basieren, sollte es mit jedem Objekt, das serialisiert werden wird, außer einfache Typen funktionieren.
Danke, für eine schnelle Antwort, wahrscheinlich war meine Frage nicht in angemessener Weise beschreiben, eigentlich die Hauptidee, Serialisierer zu haben, der in der Lage wäre, jedes Objekt außer einfachen Typen zu überprüfen, ob es null ist und ob es gleich null ist In der Lage, neue Objekte unter Verwendung von Standardkonstruktoren zu erstellen, so dass es nicht auf einem bestimmten zweiten Typ basieren sollte, sollte es in der Lage sein, mit jedem neuen Objekt zu arbeiten, das serialisiert wird. – fashuser
Kein Problem. Nun, du musst deine Frage dann bearbeiten. – Michael
getan, aktualisiert, wie Sie vorgeschlagen haben – fashuser