2017-06-20 6 views
1

firebaseデータオブジェクトを自分のpojoにマップしたいと思います。しかし、私のfirebaseオブジェクトのプロパティ名はsnakeの場合、 です。 "user_name" 私のpojoでcamelCaseを使用したい、 など。 "userName"firebaseデータ(snake_case)をJavaオブジェクト(camelCase)に変換する方法

thisのような美しい答えが見つかりましたが、snake_caseからcamelCaseへのマッピングに関するサンプルが見つかりませんでした。

私のpojo;

@SerializedName("content") 
private String content; 
@SerializedName("user_name") 
private String userName; 

私は以下のコード行を使用してマッピングしています。 'content'は問題なし(@SerializedNameアノテーションの有無にかかわらず)一致しますが、userNameはnullのままです。また、難読化のための課題となっている

Story story = storySnapshot.getValue(Story.class);

。データをpojoに一致させるエレガントな方法はありますか?

答えて

2

問題は@SerializedName注釈でした。 Firebaseには@PropertyNameという独自のアノテーションがあります。

ゲッター名はアノテーションがその名前についても気にするので注意が必要です。 プロパティもパブリックである必要があります。

thisリンクに関する完全な回答があります。

私のpojoの最終状態。

@PropertyName("content") 
public String content; 
@PropertyName("user_name") 
public String userName; 
関連する問題