Hallo,
ich nutze in meinem Projekt die Jackson JSON Bibliothek zum Serialisieren von POJOs. Ich möchte die Serialisierung nun so anpassen, dass nur das Top-Level-Objekt (implements Id) komplett serialisiert wird und alle enthaltenen Objekte, die vom Interface Id erben, nur mit dem Wert id erscheinen. Beispiel:
Die normale Ausgabe als JSON entspricht:
Die gewünschte Ausgabe als JSON sollte aber wie folgt sein:
Ich habe bereits viel recherchiert aber bisher keine guten Anhaltspunkte gefunden das Problem elegant zu lösen. Der Artikel JacksonSampleCustomViewProcessing - FasterXML Wiki beschreibt im Grunde genommen das gleiche Problem, ist aber mit der aktuellen Version der Bibliothek nicht mehr kompilierbar.
Kennt sich jemand mit der Jackson Bibliothek aus und kann mir ein paar Hinweise liefern? Danke!
ich nutze in meinem Projekt die Jackson JSON Bibliothek zum Serialisieren von POJOs. Ich möchte die Serialisierung nun so anpassen, dass nur das Top-Level-Objekt (implements Id) komplett serialisiert wird und alle enthaltenen Objekte, die vom Interface Id erben, nur mit dem Wert id erscheinen. Beispiel:
Java:
interface Id {
public long getID();
}
class A implements Id {
public String name = "test";
public B child = new B();
public long getID() {
return 1;
}
}
class B implements Id {
public long size = 100;
public long getID() {
return 2;
}
}
Die normale Ausgabe als JSON entspricht:
Code:
{
"id": 1,
"name": "test",
"child": {
"id": 2,
"size": 100
}
}
Die gewünschte Ausgabe als JSON sollte aber wie folgt sein:
Code:
{
"id": 1,
"name": "test",
"child": {
"id": 2
}
}
Ich habe bereits viel recherchiert aber bisher keine guten Anhaltspunkte gefunden das Problem elegant zu lösen. Der Artikel JacksonSampleCustomViewProcessing - FasterXML Wiki beschreibt im Grunde genommen das gleiche Problem, ist aber mit der aktuellen Version der Bibliothek nicht mehr kompilierbar.
Kennt sich jemand mit der Jackson Bibliothek aus und kann mir ein paar Hinweise liefern? Danke!
Zuletzt bearbeitet: