JSON 转 Swift 结构体
JSON 转 Swift Model 工具,生成遵循 Codable 协议的 struct,CodingKeys 自动处理蛇形命名映射,可选类 / 结构体与可空类型标注。生成在浏览器本地完成,iOS / macOS 开发可以直接使用。
在工作台中打开 本地处理 · 数据不上传
怎么使用
- 1
粘贴 JSON
粘贴接口 JSON,嵌套对象生成独立 struct,数组生成 [T]。
- 2
确认根类型名
默认 User,按业务模型修改;可空字段自动标注为可选属性。
- 3
复制 Swift 代码
生成 Codable struct + CodingKeys,JSONDecoder 一行解析。
功能特点
Codable 零依赖
基于 Foundation 的 Decodable/Encodable,无需第三方 JSON 库。
CodingKeys 自动生成
snake_case 等键名通过 CodingKeys 映射为 Swift 风格属性,解码策略不匹配也不怕。
可选属性智能标注
null 字段生成可选类型(String?),缺键时解码不报错。
struct / class 可选
默认值类型 struct;需要引用语义时可切换 class 生成风格(含 final 选项)。
常见错误与排查
- ! 优先用 struct:值类型、线程安全、性能好,与 SwiftUI 数据模型也更契合。
- ! 解码器可设 keyDecodingStrategy = .convertFromSnakeCase;若字段不规则,以生成的 CodingKeys 为准。
- ! 日期是字符串时生成 String;确认格式后可换为 Date 并配置 decoder.dateDecodingStrategy。
常见问题
生成的代码怎么解析 JSON?
让结构体遵循 Codable(已自动生成),然后 JSONDecoder().decode(User.self, from: data) 即可;嵌套模型一并解码。
为什么有的属性是可选(?)的?
样例中该字段为 null 或可能缺失。可选属性解码失败 / 缺键时为 nil 而不抛错;若接口保证必有,可手工去掉问号改为非可选。
支持 Alamofire 吗?
生成内容与网络库无关,Alamofire 的 responseDecodable 直接消费 Codable 模型即可;需要扩展方法时可取消「仅类型」查看配套示例(部分版本提供)。