2009-09-16 3 views
2

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

{"name": "dere", "entries": [{"points": 0, "wins": 0, "loss": 0 , "связь": 0, "лидеры": { "имя": "дер", "запись": [{ "точки": 0, "победы": 0, "потеря": 0, "связь": 0, "Лидеры": { "имя": "дер", "запись": [{ "точки": 0, "победы": 0, "потеря": 0, "галстуки": 0, "лидеры": { "имя ":" дер " "запись": [{ "точки": 0, "победы": 0, "потеря": 0, "галстуки": 0, "лидеры": { "имя": "дер"," ... и т. д.

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

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

ответ

0

Возможно, стоит проверить Kris Zyp's JSON Referencing proposal. Он был специально разработан для обработки множественных ссылок и круговых ссылок в данных JSON.

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

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

1

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

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