
Swift
使用 Swift Codable 可以方便地将数据进行编码和解码,使其在不同的格式之间进行转换。通常情况下,我们期望解码的是一个 Dictionary
Swiftstruct MyData: Codable { let name: String let age: Int init(from decoder: Decoder) throws { let contAIner = try decoder.contAIner(keyedBy: CodingKeys.self) if let age = try? contAIner.decode(Int.self, forKey: .age) { self.age = age } else { // 如果 age 的值为字符串或其他类型的数据,则将其设置为默认值 self.age = 0 } self.name = try contAIner.decode(String.self, forKey: .name) } private enum CodingKeys: String, CodingKey { case name case age }}let JSon = """{ "name": "John", "age": "25"}"""let data = JSon.data(using: .utf8)!let decoder = JSONDecoder()do { let myData = try decoder.decode(MyData.self, from: data) print("Name: \(myData.name)") print("Age: \(myData.age)")} catch { print("Error: \(error)")}在上述示例中,我们定义了一个名为 MyData 的结构体,它遵循了 Codable 协议。在解码过程中,我们先尝试解码 age 字段的值为 Int 类型,如果解码成功,则将其赋值给 age 属性;否则,将 age 的值设置为默认值 0。然后,我们再解码 name 字段的值为 String 类型,并将其赋值给 name 属性。在解码过程中,如果遇到了类型不匹配的情况,我们可以根据实际需求进行处理。例如,将其设置为默认值、抛出自定义错误或进行其他操作。处理字符串或其他类型的数据在上述示例中,我们演示了如何处理字符串或其他类型的数据。通常情况下,我们期望解码的是一个 DictionaryCopyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号