こんにちは私は初心者ですので、高レベルのソリューションを理解できない場合があります。REST APIレスポンスのフィールド名を変更する
これまでのところ、私はREST APIの応答を送信したいと思います。ですから、基本的には、メソッドからオブジェクトを返すと、そのオブジェクトのフィールドと対応する値がAPIレスポンスに表示されます。明確にすることが
は、今、私たちは上記のクラス(サンプルABC)のオブジェクトを持って言うことができます私たちは
Class Sample
{
String fruit;
int cost;
}
として定義されたクラスを持って言うことができます。 以下のようにまた、我々は方法があります。だから私は取得しています応答が
{
"fruit":"apple",
"cost":100
}
は、今私が欲しいものを受けて、「fruit.name」ですが、明らかに私ができることである
@RequestMapping(/inventory)
public Sample getInventory()
{
Sample abc = new Sample();
----Some processing----
return abc;
}
その名前のフィールド(ドットまたは@文字を持つ)がありません!
{
"fruit.name":"apple",
"[email protected]":100
}
このような対応が得られる方法はありますか?
を使用することができJacksonを使用している場合は、カスタム・シリアライザで簡単にそれを達成することができます。あなたは何を使っていますか?ジャクソン? – dambros
おそらくね。 com.fasterxml.jackson.core ジャクソン注釈 $ {ジャクソンannotations.version}他ジャクソン関連の依存関係と一緒に ... –
gautam
与えられた答えは:のpom.xmlが言うので、簡単な解決策です。 '.'や' @ 'をプログラムで追加したいのでない限り、あなたが作成するすべてのクラスに対して多くのフィールドがある場合に備えてください。それから、カスタムシリアライザを使う方が良いでしょう。そうであれば教えてください。私はあなたに例を挙げることができます。 – dambros