エンドポイントからJSONを取得しています。これをGSONを使用してPOJOに変換しています。私はそのデータのいくつかを操作し、それをJSONに変換する必要がありますが、名前は異なります。 @SerializedNameを使用した場合、名前はJSONからPOJOに変換されるときに変更されますが、JSONに変換し直すと再び変更されます。JSONをPOJOに変換して戻すときに名前を変更する
どうすればこの問題を解決できますか?
エンドポイントからJSONを取得しています。これをGSONを使用してPOJOに変換しています。私はそのデータのいくつかを操作し、それをJSONに変換する必要がありますが、名前は異なります。 @SerializedNameを使用した場合、名前はJSONからPOJOに変換されるときに変更されますが、JSONに変換し直すと再び変更されます。JSONをPOJOに変換して戻すときに名前を変更する
どうすればこの問題を解決できますか?
あなたはジャクソンにGSONから切り替えるために喜んでいる場合、あなたはあなたがGSONで立ち往生していると仮定すると、this other Stack Overflow question
EDIT
に対する解決策を見ることができる、使用可能であるようには見えません同じクラスを使用して、異なるキーで同じフィールドを読み書きします。他のフレームワークでは、ゲッターとセッターからシリアル化とデシリアライズを実行し、それらのメソッドでカスタムデコレータを探すことによってこれを達成しますが、according to the GSON design document(フィールドとvs gettersを使用してJsonエレメントを示します)回避策として
EDIT2
、私はあなたの元のオブジェクトのインスタンスからインスタンス化が、あなたが戻ってJSONにシリアライズするために希望のフィールド名を持つことができ、別のPOJOを作成し提案することがあります。これはちょっとしたhack-yですが、メインクラスのToJSON()
メソッドでカプセル化して、シリアライゼーションを行うときにきれいに保つことができます。
あなたはGSONを使用することを約束していますか、またはシリアル化/逆シリアル化のために他のライブラリを検討していますか? – RemedialBear
GSONを私が決定できないプロジェクトとして使用することを約束した種類。 – user7434041