SuperAPI AI 工具集

swift-codable

编程与开发

查看项目

更新于 10-15 23:34

技能介绍

用途:该技能面向使用 Swift Codable 进行数据编解码的场景,用 JSONEncoder、JSONDecoder 等 API 在 Encodable 与 Decodable 之间转换数据类型,目标版本为 Swift 6.3 / iOS 26+。

主要能力:覆盖基本自动合成遵循、用 CodingKeys 重命名键、自定义 init(from:) 与 encode(to:)、嵌套与扁平化容器、异构数组、日期解码策略、Data 与键策略、丢失容忍的数组解码、单值容器、缺失键默认值,以及编码器与解码器配置;还涉及 Codable 与 URLSession、SwiftData、UserDefaults 的配合,并列出常见错误与评审清单。

使用方式:所有属性本身可 Codable 时编译器自动合成遵循;只读响应优先用 Decodable,只写用 Encodable,双向才用 Codable。可用 CodingKeys 枚举重命名 JSON 键;无法自动处理时重写 init(from:) 与 encode(to:),用 container(keyedBy:)、nestedContainer(keyedBy:forKey:) 等访问。日期可设 decoder.dateDecodingStrategy = .iso8601 等;键可用 .convertFromSnakeCase;编码器可设 outputFormatting = [.prettyPrinted, .sortedKeys, .withoutEscapingSlashes]。非标准浮点用 nonConformingFloatEncodingStrategy。

适用场景:解析 API 返回的 JSON、构造请求体、读写属性列表、将 Codable 结构体作为 SwiftData 复合属性,或通过 RawRepresentable 配合 @AppStorage 存储。

限制与注意事项:资料未提供具体安装命令、收费或平台支持信息。默认单个无效元素会导致整个数组解码失败,需自建 LossyArray 之类的包装跳过;默认日期策略为 .deferredToDate,需与接口格式匹配;缺失键需用 decodeIfPresent 配默认值;不要对解码结果强制解包;无需编码时不必使用 Codable。这些为资料给出的实践提示,实际行为以 Apple 官方 API 为准。