gpt4 book ai didi

ios - Swift - 嵌套对象的 JSON 序列化

转载 作者:行者123 更新时间:2023-11-30 11:22:41 27 4
gpt4 key购买 nike

我有一个从 JSON 创建的对象(序列化)。该对象有一个 id 属性,代表系统中存储的另一个对象。如何在序列化过程中获取嵌套对象?

import UIKit


class Person: Codable {
let firstName: String
let lastName: String
let addressId: String
let address: Address // How to create it during serialisation

private enum CodingKeys: String, CodingKey {
case firstName
case lastName
case addressId = "addressId"
}

init(firstName: String, lastName: String, addressId:String) {
self.firstName = firstName
self.lastName = lastName
self.addressId = addressId
}

required init(from decoder: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
self.firstName = try values.decode(String.self, forKey: .firstName)
self.lastName = try values.decode(String.self, forKey: .lastName)
self.addressId = try? values.decode(URL.self, forKey: .addressId)
}
}

struct PersonsList : Codable {
let persons: [Person]
}

class Address {

static func getAddress(addressId: String) -> Address
{
//some code
return address
}
}

最佳答案

使用惰性属性来实现

编辑

选项1

 lazy var address:Address = { [unowned self] in
return Address.getAddress(addressId: self.addressId)

}()

选项2

var  adreess1:Address {
return Address.getAddress(addressId: self.addressId)
}

关于ios - Swift - 嵌套对象的 JSON 序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51113980/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com