2016-04-11 6 views
0

これは奇妙な疑問のように思えるかもしれませんが、これはレガシーフロントエンドによるものです。 JSONまたはw/eでXMLベースBeanを消費したもの。JSONレスポンスに@XMLAttributeを有効にする

私たちはいくつかの豆を持っています。 @XMLAttributeと@XMLElementによって注釈が付けられます。 これらのアノテーションは、サービスのコンフィグレーションを注釈主導型に更新しているので無視されているようです(すべてのXMLシステムが10年以上前に使用されていたConfig)。

私たちはJSON用にMappingJackson2HttpMessageConverterを使用していました。私はこれを無効にしてJSONレスポンスがXMLElementの名前を尊重します(いくつかのプロパティは注釈とは異なりますが、これがフロントエンドで問題を引き起こしています)。

私の最後の質問は、JSONを使用するときに@XMLAttributeで注釈付きのプロパティを@ "キー"形式で返すことです。

@XMLAttribute ロングID;

{"@id":0}としてJSONで返されます。 これは{"id":0}として返されますが、私たちは手に入っていないレガシーコード(APIを使用しているクライアント)の負荷に悩まされています。

誰もが驚くべきことがあれば、すべてのコードを適切にテストすることができなかったため、configsを変更しています。

@valueを返すのは可能ですか?それともカスタムハンドラを意味するでしょうか?

+0

対応するジャクソン注釈を追加するためにクラスを更新できないのはなぜですか? – OrangeDog

答えて

1

あなたはジャクソンを使用している場合は、次のように使用できます。

@JsonProperty("@id") Long id; 

そして、あなたが望むようにあなたは、出力を得るでしょう。

Why are names returned with @ in JSON using Jersey - Stackoverflow投稿がありますが、それがあなたに役立つかどうかわかりません。

私はあなたを助けたと思う!

+0

私は他のページを見ましたが、それはジャージーのおかげです。私はすでに私が前にしたと思うが、その注釈を試してみるだろう。 –

+0

yersterdayを見逃していなければなりませんが、これは本当にうまくいくようです。 –

関連する問題