{
  "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。

10-06 13:57
查看更多