Swift: 解析对象数组

Swift: Parsing Array of object

我有一个 Contact 对象,它可以包含 Address 个对象的数组。

class Contact {
    var firstName: String = ""
    var lastName: String = ""
    var middleName: String = ""
    var id: Int = -1
    var addresses: Array<Address> = []

如何在从 json 字典中获取每个 Address 对象时对其进行初始化?

init(json: Dictionary<String, AnyObject>) {

        if let line1 = json["streetLine"] as? String {
            self.streetLine1 = line1
        }
        if let city = json["city"] as? String {
            self.city = city
        }
        if let state = json["state"] as? String {
            self.state = state
        }
        if let zip = json["zip"] as? Int {
            self.zip = zip
        }

试过这样做:

if let addressMap = json["addresses"] as? Array<Dictionary<String, AnyObject?>> {
            for address as? Address in addressMap {
                addresses.append(address)
            }
        }

试试这个:

if let dictionaryArray = json["addresses"] as? Array<Dictionary<String, Anyobject?>> 
    for address in dictionaryArray {
        var address = Address(json: address)
        addresses.append(address)
    }
}

因此,您从 json 中获取词典列表,遍历它们,然后使用您的 init 函数将数据注入 class。

试试这个

addresses = (json["addresses"] as? Array<Dictionary<String, AnyObject?>>)?.map{Address(json: [=10=])}