Получение JSON из Джерси с круговыми зависимостями - PullRequest
2 голосов
/ 16 сентября 2009

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

{ "имя": "дер", "запись": [{ "точки": 0, "победы": 0, "потеря": 0, "галстуки": 0, "лидеры": { "имя" : "дер", "запись": [{ "точки": 0, "победы": 0, "потеря": 0, "галстуки": 0, "лидеры": { "имя": "дер", "запись ": [{" точки ": 0," побед ": 0," потеря ": 0," галстуки ": 0," полноразмерное ": {" имя ":" дер», "записи": [{ "точка" : 0, "побед": 0, "потерь": 0, "связей": 0, "таблица лидеров": {"name": "dere", "... и т. Д.

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

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

Ответы [ 2 ]

1 голос
/ 02 ноября 2009

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

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

0 голосов
/ 16 сентября 2009

Вероятно, стоит проверить Предложение Криса Ципа о ссылках JSON . Он был придуман специально для обработки нескольких ссылок и циклических ссылок в данных JSON.

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

Как реализовать эту технику на Джерси - это, к сожалению, упражнение, оставленное читателю.

...