Как переименовать корневой ключ в сериализации JSON с Джексоном
Я использую Джексона для сериализации JSON списка объектов.
Вот что я получаю:
{"ArrayList":[{"id":1,"name":"test name"}]}
Но я хочу этого:
{"rootname":[{"id":1,"name":"test name"}]} // ie showing the string I want as the root name.
Ниже мой подход к этому:
Интерфейс:
public interfac,e MyInterface {
public long getId();
public String getName();
}
Класс реализации:
@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 сериализация:
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);
}
}
Контрольная работа:
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);
Вот что я получаю:
{"ArrayList":[{"id":1,"name":"test name"}]}
Но я хочу этого:
{"rootname":[{"id":1,"name":"test name"}]} // ie showing the string I want as the root name.
Я перепробовал все предложенные решения, которые смог найти, но не смог достичь своей цели. Я посмотрел на:
Джексон: сериализация пользовательских коллекций в JSONКак переименовать корневой ключ JSON с помощью Java Jackson?Джексон: сериализация пользовательских коллекций в JSONИли я что-то упустил? Я использую Джексон 1.9.12 для этого. Любая помощь в этом отношении приветствуется.