{
"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
}
}
]
}
应用程序模型
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"]
}
}
当我打印我的条目时,它会在第一个“linked_to”中显示正确的值,但当我拉取所有领域对象时,只有ID会在“linked_to”中出现,其他名称等都是
null
表示hfqfqlo@qudqg.in
。hfqfqlo@qudqg.in
已命名,但仍在显示。对于knowprff2ashant123afafafafafyadav@gmail.com
它是好的,因为它返回null
。 最佳答案
您已将电子邮件设置为AppUser上的主键,并将其映射到“登录电子邮件”。在JSON中,您没有任何“登录电子邮件”用于链接到部分,因此主键始终是空字符串(您设置的默认值为“”)。所以事实上你总是覆盖同一个AppUser。数组中的最后一个字段的所有字段都为空,因此最终所有用户(或实际上是唯一的用户)的所有属性都为空。
您应该确保json中的所有“linked_to”用户都有一个“login_email”,或者将您的主键更改为一些实际上是唯一的,比如userId。