So benennen Sie den Stammschlüssel in der JSON-Serialisierung mit Jackson um
Ich verwende Jackson für die JSON-Serialisierung einer Liste von Objekten.
Folgendes bekomme ich:
{"ArrayList":[{"id":1,"name":"test name"}]}
Aber ich will das:
{"rootname":[{"id":1,"name":"test name"}]} // ie showing the string I want as the root name.
Unten ist mein Ansatz dazu:
Schnittstelle:
public interface MyInterface {
public long getId();
public String getName();
}
Implementierungsklasse:
@JsonRootName(value = "rootname")
public class MyImpl implements MyInterface {
private final long id;
private String name;
public MyImpl(final long id,final name) {
this.id = id;
this.name = name;
}
// getters
}
JSon-Serialisierung:
public class MySerializer {
public static String serializeList(final List<MyInterface> lists) {
//check for null value.Throw Exception
final ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
return mapper.writeValueAsString(lists);
}
}
Prüfung:
final List<MyInterface> list = new ArrayList<MyImpl>();
MyImpl item = new MyImpl(1L,"test name");
list.add(item);
final String json = MySerializer.serializeList(list);
System.out.println(json);
Folgendes bekomme ich:
{"ArrayList":[{"id":1,"name":"test name"}]}
Aber ich will das:
{"rootname":[{"id":1,"name":"test name"}]} // ie showing the string I want as the root name.
Ich habe alle Lösungsvorschläge ausprobiert, aber mein Ziel nicht erreicht. Ich habe angeschaut:
Jackson: benutzerdefinierte Sammlung Serialisierung nach JSONWie benenne ich den Root-Schlüssel eines JSON mit Java Jackson um?Jackson: benutzerdefinierte Sammlung Serialisierung nach JSONOder vermisse ich etwas? Ich benutze Jackson 1.9.12 dafür. Jede Hilfe in dieser Hinsicht ist willkommen.