@JsonIdentityInfo Джексона с широтой прежде всего

Я использую @JsonIdentityInfo Джексона для удаления круглых объектов из JSON.

Предположим, что ниже приведены классы Java Class A, B, C, а ниже приведена структура,

Class A{
     int id;
     B b;
     C c;
}
Class B{
     int id;
     C c;
}

Мой объект (А)

{
     id:1,
     b:{
          id: 2,
          c:{
            id: 3
            }
     },
     c: {
        id: 3
     }
}

Он меняет объект на

{
         id:1,
         b:{
              id: 2,
              c:{
                id: 3
                }
         },
         c: 3
    }

Поскольку C имеет тот же идентификатор, я хочу, чтобы это было реализовано как Сначала ширина, т.е. первый уровень должен удалять объект и предоставлять свойство, но уровень глубины должен делать это, есть ли способ получить это следующим образом?

{
             id:1,
             b:{
                  id: 2,
                  c:3
             },
             c: {id:3}
        }

person Akshay    schedule 07.06.2016    source источник


Ответы (1)


Нет, сериализация выполняется сначала в глубину, и изменение этого может потребовать буферизации всего выходного графа в памяти перед записью JSON.

person StaxMan    schedule 23.06.2016