Сериализация вложенных классов с использованием Джексона

Ниже приведена структура моего класса:

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 минут.

0 ответов

Другие вопросы по тегам