Verwenden Sie den Klassennamen als Stammschlüssel für die JSON Jackson-Serialisierung

Angenommen, ich habe ein Pojo:

import org.codehaus.jackson.map.*;

public class MyPojo {
    int id;
    public int getId()
    { return this.id; }

    public void setId(int id)
    { this.id = id; }

    public static void main(String[] args) throws Exception {
        MyPojo mp = new MyPojo();
        mp.setId(4);
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
        System.out.println(mapper.getSerializationConfig().isEnabled(SerializationConfig.Feature.WRAP_ROOT_VALUE));
        System.out.println(mapper.writeValueAsString(mp));
    }
}

Wenn ich mit dem Jackson ObjectMapper serialisiere, bekomme ich nur

true
{"id":4}

aber ich möchte

true
{"MyPojo":{"id":4}}

Ich habe überall gesucht, Jacksons Dokumentation ist wirklich unorganisiert und größtenteils veraltet.

Antworten auf die Frage(11)

Ihre Antwort auf die Frage