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=])}
我有一个 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=])}