如何将firebase数据(snake_case)转换为Java对象(camelCase)

时间:2017-06-20 19:38:33

标签: java android firebase firebase-realtime-database type-conversion

我想将我的firebase数据对象映射到我的pojo。但是,我的firebase对象属性名是snake case, 如; " USER_NAME&#34 ;. 我想在我的pojo上使用camelCase, 如; "用户名"

我找到了像this一样的漂亮答案,然而,我无法找到任何关于snake_case的样本来进行camelCase映射。

我的pojo;

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

我使用以下代码行进行映射。 '内容'匹配没有问题(有或没有@SerializedName注释)但userName保持为null。

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

这也是混淆的问题。有没有一种优雅的方法将数据与pojo相匹配?

1 个答案:

答案 0 :(得分:3)

问题是@SerializedName注释。 Firebase有自己的注释,即@PropertyName。

注意getter名称非常重要,因为注释也关注它的名称。 该物业也必须公开。

this链接上有一个完美的答案。

我的pojo的最终状态;

@PropertyName("content")
public String content;
@PropertyName("user_name")
public String userName;