【发布时间】:2017-11-09 12:56:29
【问题描述】:
我正在尝试解析来自 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 数据库快照的数据时,它只将元数据的值解析为模型,所有其他事情都被忽略了。我只想知道对应的模型应该是什么样子。它经常发生在我身上,这让我把这个问题放在堆栈溢出上。对不起,如果这个问题有任何重复..
【问题讨论】:
-
它解析了元数据,但没有解析消息和用户,对吗?
-
该图有点晦涩难懂,但似乎“用户”是具有两个布尔变量而不是列表的模型。你能提供一个实际的 JSON 字符串示例来检查吗?
-
@PeterHadda 元数据仅使用上述模型进行解析。 userList 和 messageList 保持为空,我相信实际 json 中的列表
-
@PeterHaddad 你建议添加相应的注释,这不是我的朋友的问题,我已经用 SerializedName 定义了那些。如果您仔细查看“消息”和“用户”节点包含记录(节点)列表,我将这些节点定义为 POJO 中的列表,这给我带来了麻烦。我想我应该按照其他答案中的建议尝试使用地图。
-
如果您再次阅读我的回答,您会看到 firebase 内置了序列化功能,如果您有不同的名称作为字段,则属性名称将在 firebase 中使用,这就是用户和消息数据的原因没有出现。变量名
metaData与数据库中的相同,但userslist和messagelists不同。因此,要么将他们的名称更改为数据库中的名称(users和messages),您的数据就会出现,或者在括号内添加带有相应数据库名称的属性名称。将用户列表更改为users,它将解析值以建模@JOt
标签: android firebase firebase-realtime-database gson