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 JSON

Oder vermisse ich etwas? Ich benutze Jackson 1.9.12 dafür. Jede Hilfe in dieser Hinsicht ist willkommen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage