Сериализация вложенных классов с использованием Джексона
Ниже приведена структура моего класса:
public interface AInf {
public String getUniqueKey();
// other getters
}
public interface BInf {
public String getUniqueKey();
// other getters
}
public interface CInf {
public String getUniqueKey();
// other getters
}
class A implements AInf {
private String name;
private String uniqueKey;
private CInf c;
// with getters and setters
// also there are more fields with nested class structure
}
class B implements BInf {
private String name;
private String uniqueKey;
private AInf a;
private CInf c;
// with getters and setters
// also there are more fields with nested class structure
}
class C implements CInf {
private String name;
private String uniqueKey;
private String value;
// with getters and setters
}
При создании JSON с использованием ObjectMapper.writeValueAsString() Джексона он снова создает весь JSON для внутренних вложенных классов. Подобно:
A :-
{
"name" : "abc",
"c" : {
// whole C class JSON without unique Key
}
}
B :-
{
"name" : "xyz",
"a" : {
// whole A class JSON without unique Key
}
"c" : {
// whole C class JSON without unique Key
}
}
C :-
{
"name" : "xyz",
"value" : "pqr"
}
Есть ли способ избежать повторного создания JSON для вложенных классов?
Немного статистики, у меня есть всего 600+ объектов типа A, B и C вместе взятых. Размер файла JSON, созданного с помощью вышеописанного метода, составляет 35 МБ, и на это ушло более 20 минут.