ich bin versucht, eine Klasse MyRootClass mit einer Eigenschaft json-Serialisierung, die eine Sammlung von Elementen einer zweiten Klasse MyClass ist:Jackson: kundenspezifische Sammlung Serialisierung JSON
public class MyRootClass {
private List<MyInterface> list = new ArrayList<MyInterface>();
// getter/setter
}
public class MyClass implements MyInterface {
private String value = "test";
// getter/setter
}
Der folgende Code:
MyRootClass root = new MyRootClass();
root.getList().add(new MyClass());
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(System.out, root);
Erzeugt diese JSON Ausgabe:
{"list": [ {"value":"test"} ] }
statt, was ich brauche, um jeden Gegenstand in der Spalte Lektion mit einem Namen serialisiert:
{"list": [ {"myclass": {"value":"test"}} ] }
Gibt es eine Möglichkeit, um es mit Jackson zu erreichen? Ich habe darüber nachgedacht, einen benutzerdefinierten Serializer zu schreiben, aber ich habe nichts gefunden, was mit einer Sammlung von Objekten zu tun hat.
Danke. Das habe ich versucht zu vermeiden, weil ich ein Legacy-Klassenmodell verwende (ich kann es nicht ändern), aber ich muss das JSON-Format erhalten (auch eine Einschränkung, die von einem Drittsystem auferlegt wird). –
Sie können das Legacy-Klassenmodell zum Zweck der Serialisierung umbrechen. – Bozho