SuperAPI AI 工具集

axiom-codable

编程与开发

查看项目

更新于 10-16 00:22

技能介绍

用途:为 Swift 6.x 中采用 Codable 协议进行 JSON 与 PropertyList 编解码提供系统化模式参考,适用于处理协议一致性、键名映射、枚举序列化和日期解析等任务。

主要能力:

  1. 自动合成:当所有存储属性均为 Codable 时,添加 : Codable 即可自动生成实现;包含原始值枚举、无关联值枚举与带关联值枚举的编码形态说明。
  2. CodingKeys 定制:重命名键、排除属性、使用 decoder.keyDecodingStrategy = .convertFromSnakeCase 处理下划线转驼峰,并通过 {CaseName}CodingKeys 定制枚举关联值的键。
  3. 手动实现与容器:针对结构差异,使用 Keyed、Unkeyed、Single-value、Nested 容器自行实现 init(from:) 与 encode(to:),并可用桥接类型转换结构,如将字典转为对象数组。
  4. 日期处理:支持 .iso8601、.secondsSince1970、.millisecondsSince1970、.formatted(formatter) 与 .custom 等策略;自定义 DateFormatter 时应设置 Locale(identifier: "en_US_POSIX") 与时区,且避免在闭包内重复创建 formatter。
  5. 类型转换:通过 StringBacked 包装器处理数字以字符串返回的接口;FlexibleValue 用于类型不确定的松散接口,但建议优先使用严格类型。
  6. 进阶能力:iOS 15+ 的 DecodableWithConfiguration 注入 JSON 之外的数据,早期版本可用 userInfo 方案;支持部分字段解码与 DecodingError 分类调试。

使用方式:在 Swift 项目中定义符合 Codable 的类型,或用 JSONDecoder/JSONEncoder 编解码;按上文决策树选择自动合成、CodingKeys 或手动实现。遇到 keyNotFound、typeMismatch 等错误时按对应方式修正。

适用场景:网络接口数据解析、本地持久化、枚举与嵌套结构序列化。

限制:仅覆盖 Codable 主题,不涉及网络层与存储方案;部分特性要求 iOS 15+ 或 iOS 17+。避免 try? 吞掉错误、手工拼接 JSON、用 JSONSerialization 处理 Codable 类型,以及忽略日期时区等反模式。工具的具体安装方式、收费与平台信息暂未提供。