我有我需要在字典中输入的JSON数据,然后附加到数组。firebase json反序列化swift
下面一种情况,即应该发生,但我得到的错误
这个类不是键值为重点 K0tA3yTnxAWxCFBZoeyAjcr3yYy1顺应编码-“。
let room = rooms[indexPath.row]
if let dictionary = room.members {
let user = User()
user.setValuesForKeys(dictionary)
liveCell.members.append(user)
}
下面是类
用户
class User: NSObject {
var email: String?
var name: String?
var profileImageUrl: String?
}
房
class Room: NSObject {
var rid: String?
var owner: String?
var groupChatName: String?
var groupChatDescription: String?
var members: NSDictionary?
}
房对象在数据库
"rooms" : {
"B7C7E469-945E-4327-9473-AAE34FCB9B41" : {
"groupChatDescription" : "123ae",
"groupChatName" : "Test123",
"members" : {
"K0tA3yTnxAWxCFBZoeyAjcr3yYy1" : {
"email" : "[email protected]",
"name" : "Steve",
"profileImageUrl" : "https://firebasestorage.googleapis.com"
}
},
"owner" : "Steve"
}
},
回顾一下,房间是一组房间,房间是特定的房间对象,成员是一组用户,而成员是特定的用户。
我已经使用字典方法从我的数据库中检索用户,但我发现数据快照之间存在一些差异。从火力地堡
snapshot.value:
Optional({
email = "[email protected]";
name = Steve;
profileImageUrl =
"https://firebasestorage.googleapis.com";
})
此格式适用于字典
数据快照使用print(room.members)
:
Optional({
K0tA3yTnxAWxCFBZoeyAjcr3yYy1 = {
email = "[email protected]";
name = Steve;
profileImageUrl =
"https://firebasestorage.googleapis.com";
};
})
该格式不因为我相信字典工作这是因为关键,但我不知道如何摆脱它,因为这基本上是我如何分隔成员数组中的每个成员。
有什么建议吗?
至于什么liveCell是这里是一个屏幕截图,解释得很好...
这是一个liveCell,你能看到的数据相匹配。黄色矩形是另一个uicollectionview,它包含成员profileimages的数组,其中每个配置文件图像将位于红色方框内。
希望这将清除的东西了
有没有在这个问题缺少一些信息(为什么自我。 liveCell?有成员?),它有点不清楚,*成员是用户数组* *不清楚 - 它似乎被定义为用户类中的通用*字典*。也许你的意思是把它定义为像[Users]这样的用户数组?或者也许它应该是一个字典?也许这是另一个阵列?你能否清理这个问题,因为我认为答案应该很简单。 – Jay
@Jay我编辑了这个问题 – Stefan