3

Jersey と JAXB を使用するサービスを作成しています。私のクラスには、@XMLRootElement、@XMLElement などのアノテーションが付けられています。2 つのクラス間に循環依存関係があるため、循環依存プロパティに @XMLTransient アノテーションを付けました。したがって、サービスを呼び出すと、デフォルトで xml が取得され、完全に機能します。ただし、JSON を使用しようとすると、次のような行が繰り返されます。

{"name":"dere","entries":[{"points":0,"wins":0,"losses":0,"tie":0,"leaderboard":{"name":"dere ","entries":[{"points":0,"wins":0,"losses":0,"tie":0,"leaderboard":{"name":"dere","entries":[ {"ポイント":0,"勝ち":0,"負け":0,"引き分け":0,"リーダーボード":{"名前":"デレ","エントリ":[{"ポイント":0, "勝ち":0,"負け":0,"引き分け":0,"リーダーボード":{"名前":"デレ"," ... など

したがって、JSON を使用している場合、循環依存関係に問題があるようです。XML で行われるように、循環依存項目が JSON 出力に表示されないようにしたいと思います (@XMLTransient アノテーションのため)。

どうすればこれを達成できるかについて、誰かが洞察を提供できますか?

4

2 に答える 2

2

@XmlTransientの代わりに@JsonIgnoreを使用して、循環依存関係を解消します。

私はあなたと同じような問題を抱えていました、そしてこれは私のためにトリックをしました。

于 2009-11-02T18:07:58.903 に答える
0

おそらく、Kris Zyp の JSON Referencing の提案を確認する価値があります。JSON データ内の複数の参照と循環参照を処理するために特別に考案されました。

(注: 記事のタイトルにもかかわらず、Dojo は必須ではありません。元の提案はjson.comにありましたが、現時点ではそのサイトにアクセスできません。)

残念ながら、Jersey でこの手法をどのように実装するかは、読者に委ねられた課題です。

于 2009-09-16T19:22:32.540 に答える