JSONをRetrofitとGsonで解析しようとしていますが、JSONフィールド の値をBeanクラス内の複数のJAVAフィールドにマッピングする必要があります。ここでGSONを使用して単一のJSONフィールドを複数のJAVAフィールドにマッピングする方法は?
はサンプルコードです:
class A{
@SerializedName("name");
private String name;
@SerializedName("name");
private String fullName;
}
は、これは私が見ているエラーです:クラスAは、nameという名前の複数のJSONフィールドを宣言します。これを行う方法はありますか?
更新:Beanから1つのフィールドを削除するか、ゲッターとセッターに変更を加えないようにしてください。プロジェクトは巨大で、後で他の多くの場面で使用されているので、私はその構造を混乱させたくありません。質問はかなり明確で、その点がポイントです。
あなたはあなたがカスタムgsonデシリアライザでこれを達成することができ –
あなたのJSONレスポンスの例を提供することができます。http://www.javacreed.com/gson-deserialiser-example/ しかし、あなたの質問は奇妙に聞こえます。私が推測するように、複数のJavaフィールドに1つのjsonファイルをマッピングする代わりに、必要な処理を行う別の方法があります。 多分これは次のようなものです: ' @SerializedName(" name ") プライベートString name; public String getName(){ 戻り値; } パブリック文字列getFullName(){ 復帰名 } ' – krossovochkin
それとも、別のセッターをしたい場合は、あなたのようなもの持つことができます。 ' パブリック文字列getFullName(){ リターンTextUtils.isEmpty(のfullNameを)?名前:fullName; } ' – krossovochkin