{
"in_app": [
{
"email": "hfqfqlo@qudqg.in",
"active_platforms": [
"email"
],
"type": "primary_email",
"linked_to": {
"_id": "59245c790550bb34cd42e51d",
"company": "ABC Corp",
"image": " ",
"designation": "CEO",
"name": "John Doe"
}
},
{
"email": "knowprff2ashant123afafafafafyadav@gmail.com",
"active_platforms": [
"email"
],
"type": "primary_email",
"linked_to": {
"_id": "5926b5d780ff2ad821a669dab134d",
"company": null,
"image": null,
"designation": null,
"name": null
}
}
]
}
InAppUser模型
class InAppUser: Object, Mappable{
dynamic var email: String = ""
dynamic var type: String = ""
dynamic var linked_to: AppUser?
required convenience init?(map: Map) {
self.init()
}
func mapping(map: Map) {
email <- map["email"]
type <- map["type"]
linked_to <- map["linked_to"]
}
}
class AppUser : Object, Mappable {
dynamic var userId: String = ""
dynamic var company: String = ""
dynamic var designation: String = ""
dynamic var name: String = ""
dynamic var image: String = ""
dynamic var email: String = ""
override class func primaryKey() -> String? {
return "email"
}
required convenience init?(map: Map) {
self.init()
}
func mapping(map: Map) {
userId <- map["_id"]
company <- map["company"]
designation <- map["designation"]
name <- map["name"]
image <- map["image"]
email <- map["login_email"]
}
}
当我打印我的条目时,它会在第一个&#34; linked_to&#34;中显示正确的值。但后来当我拉动所有领域对象时,只有ID进来&#34; linked_to&#34;和null
的其他名称等hfqfqlo@qudqg.in
。
hfqfqlo@qudqg.in
有名字,但现在仍在显示。对于knowprff2ashant123afafafafafyadav@gmail.com
它很好,因为它正在返回null
。
答案 0 :(得分:1)
您已将电子邮件设置为AppUser上的主键,并将其映射到&#34; login_email&#34;。在您的JSON中,您没有任何&#34; login_email&#34;对于linked_to部分,因此主键始终为空字符串(您设置的默认值为&#34;&#34;)。所以实际上你总是覆盖同一个AppUser。数组中的最后一个字段将所有字段都设置为null,因此最终所有属性中的所有用户(或实际上唯一的用户)都为null。
你应该确保所有&#34; linked_to&#34;你的json中的用户有一个&#34; login_email&#34;或者将您的主键更改为实际上唯一的内容,例如userId。