Erzwingen Sie, dass Jackson zusätzliche Zeilenumbrüche mit Anmerkungen hinzufügt
Ich habe folgende Klasse:
public class Message {
private String text;
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
}
Wenn ich die Instanz mit Jackson in JSON konvertiere, erhalte ich standardmäßig:
{"text":"Text"}
Ich hätte gern:
{"message":{"text":"Text"}}
Gibt es eine JAXB / Jackson-Anmerkung, mit der ich mein Ziel erreichen kann?
Als Workaround kann ich meine Klasse mit einer anderen Klasse abschließen:
public class MessageWrapper {
private Message message;
public Message getMessage() {
return message;
}
public void setMessage(Message message) {
this.message = message;
}
}
oder eine allgemeinere Lösung:
public class JsonObjectWrapper<T> {
/**
* Using a real map to allow wrapping multiple objects
*/
private Map<String, T> wrappedObjects = new HashMap<String, T>();
public JsonObjectWrapper() {
}
public JsonObjectWrapper(String name, T wrappedObject) {
this.wrappedObjects.put(name, wrappedObject);
}
@JsonAnyGetter
public Map<String, T> any() {
return wrappedObjects;
}
@JsonAnySetter
public void set(String name, T value) {
wrappedObjects.put(name, value);
}
}
Welches kann so verwendet werden:
Message message = new Message();
message.setText("Text");
JsonObjectWrapper<Message> wrapper = new JsonObjectWrapper<Message>("message", message);
Gibt es eine JAXB / Jackson-Anmerkung, mit der ich mein Ziel erreichen kann?
Vielen Dank.