Получение JSON из Джерси с круговыми зависимостями

Я пишу службу, которая использует Джерси и JAXB. Мои классы снабжены аннотациями @XMLRootElement, @XMLElement и т. д. У меня есть круговая зависимость между двумя классами, поэтому я аннотировал круговое зависимое свойство с помощью @XMLTransient. Поэтому, когда я вызываю свою службу, я получаю xml по умолчанию, который отлично работает. Однако, когда я пытаюсь использовать JSON, я получаю повторяющиеся строки, например:

{"имя":"название","входы":[{"очки":0,"победы":0,"поражения":0,"ничьи":0,"таблица лидеров":{"название":"название ","записи":[{"очки":0,"победы":0,"поражения":0,"ничьи":0,"таблица лидеров":{"имя":"дере","записи":[ {"очки":0,"победы":0,"поражения":0,"ничьи":0,"таблица лидеров":{"имя":"дере","входы":[{"очки":0, «победы»: 0, «поражения»: 0, «ничьи»: 0, «таблица лидеров»: { «имя»: «дере», «... и т. д.

Поэтому кажется, что при использовании JSON возникает проблема с циклическими зависимостями. Я хотел бы избежать появления кругового зависимого элемента в выводе JSON, как это делается в XML (из-за аннотации @XMLTransient).

Может ли кто-нибудь дать представление о том, как я смогу этого добиться?


person Community    schedule 16.09.2009    source источник


Ответы (2)


Используйте @JsonIgnore вместо @ XmlTransient, чтобы разорвать циклическую зависимость.

У меня была такая же проблема, как у вас, и это помогло мне.

person Andy    schedule 02.11.2009

Вероятно, стоит ознакомиться с предложением Kris Zyp по ссылкам JSON< /а>. Он был изобретен специально для обработки множественных ссылок и циклических ссылок в данных JSON.

(Примечание. Несмотря на заголовок статьи, Dojo не требуется. Первоначальное предложение было на json.com, но этот сайт на данный момент мне недоступна)

Как бы вы реализовали эту технику на Джерси, к сожалению, остается на усмотрение читателя.

person system PAUSE    schedule 16.09.2009