我正在尝试解析来自firebase节点的数据,其中包含此json值here is pic of json of node
我创建的相应数据模型看起来像这样
public class Extreme {
@SerializedName("metaData")
public ThreadModel.MetaData metaData;
@SerializedName("users")
public List<Users> usersList;
@SerializedName("messages")
public List<MessagesTwo> messagesList;
public static class MetaData{
@SerializedName("createBy")
public String createBy;
@SerializedName("createdAt")
public Long createdAt;
@SerializedName("name")
public String name;
@SerializedName("type")
public String type;
@SerializedName("threadPic")
public String threadPic;
}
public static class Users{
public String key;
public boolean value;
}
}
但是当我尝试解析来自firebase数据库快照的数据时,问题只是将metaData的值解析为模型,所有其他事情都被忽略了。我只是想知道相应的模型看起来应该是什么样的。经常发生这种事让我把这个问题放在堆栈溢出上。对不起,如果这个问题有任何重复..
答案 0 :(得分:0)
模型应该是:
public class Extreme {
@SerializedName("metaData")
public ThreadModel.MetaData metaData;
@SerializedName("users")
public Map<String,Boolean> usersList;
@SerializedName("messages")
public Map<String,Message> messagesList;
public static class Message {
private String id;
private boolean seen;
private String text;
private long timeStamp;
private String type;
}
您可以将所需的名称放在Message中的属性中,但如果这样做,则使用@SerializeName
不要忘记getter&setter,或者将属性公之于众。
使用Map的主要原因是因为键似乎是随机的。因此,您无法使用已定义的属性。
奖励点:如果属性的名称与json模型不同,您只需要@SerializedName。