在swift中映射嵌套的JSON领域对象

在swift中映射嵌套的JSON领域对象,swift,realm,Swift,Realm,我已经使用Realm和Alamofire来获取和存储我的数据,但是我得到了一个对象,它是一个嵌套的JSON对象,我正在尝试访问地址,但是我得到了零。我能够获取内容数据,但不能获取地址 “内容”:[ { “id”:1, “fisrtname”:“名称”, “lastname”:“last” “地址”:{ “id”:1, “城市”:“城市”, “电话”:空, “街道”:“城市”, } class Name: Object, Mappable { @objc dynamic var id: Int =

我已经使用Realm和Alamofire来获取和存储我的数据,但是我得到了一个对象,它是一个嵌套的JSON对象,我正在尝试访问地址,但是我得到了零。我能够获取内容数据,但不能获取地址

“内容”:[ { “id”:1, “fisrtname”:“名称”, “lastname”:“last” “地址”:{ “id”:1, “城市”:“城市”, “电话”:空, “街道”:“城市”, }

class Name: Object, Mappable {
@objc dynamic var id: Int = 0
@objc dynamic var fisrtname: String? = ""
@objc dynamic var lastname: String? = ""
@objc dynamic var Address: Address? = nil
override static func primaryKey() -> String? {
    return "id"
}

required convenience init?(map: Map) {
    self.init()
}

func mapping(map: Map) {
    id <- map["id"]
    fisrtname <- map["fisrtname"]
    lastname <- map["lastname"]
    Address <- map["Address"]
}

class Address: Object {
    @objc dynamic var id: Int = 0
    @objc dynamic var city: String? = ""
    @objc dynamic var phone: Int? = ""
    @objc dynamic var street: String? = ""

    override static func primaryKey() -> String? {
        return "id"
    }

    required convenience init?(map: Map) {
        self.init()
    }

    func mapping(map: Map) {
        id <- map["id"]
        city <- map["city"]
        phone <- map["phone"]
        street <- map["street"]

    }
}
类名:对象,可映射{
@objc动态变量id:Int=0
@objc动态变量fisrtname:字符串?=“”
@objc动态变量lastname:字符串?=“”
@objc动态变量地址:地址?=nil
重写静态func primaryKey()->字符串{
返回“id”
}
所需便利初始化?(映射:映射){
self.init()
}
func映射(映射:映射){

试着做这样的模型

import Foundation
import RealmSwift

    class Name: Object {
        dynamic var id = 0
        dynamic var fisrtname : String?
        dynamic var lastname : String?
        dynamic var Address : UserAddress? = UserAddress()

        override static func primaryKey() -> String? {
            return "id"
        }
    }


    class UserAddress: Object {

        dynamic var id = 0
        dynamic var city : String?
        dynamic var phone : String?
        dynamic var street : String?

        override static func primaryKey() -> String? {
            return "Id"
        }
    }
要从Json获取地址,请执行以下操作:

let responseResult = result["Result"] as! NSDictionary
let name = Name(value: responseResult)
let address = name.Address?.city

由留下的注释解决了问题。如果您试图从嵌套关系设置关系,请确保扩展
Mappable
,忘记这一点会使调试非常困难,因为您不会得到任何关于明显的复制/粘贴/移动太快/不够快错误的指示或提示。

尝试设置
Ad着装
class
Mappable
no more copying-uu-,谢谢你的帮助help@TarasChernyshenko我不知道我怎么会陷入和努夫一样的境地,但我做到了,你帮我省去了几个小时的挠头。我想这很容易错过