JSON 转 Swift 生成器

JSON 输入

正在加载编辑器…

生成的 Swift

Configuration

输入 JSON 数据以生成 Swift 结构体

具有 Codable 支持和类型安全的结构体

如何将 JSON 转换为 Swift – 分步指南

使用此 JSON 转 Swift 生成器,可从 JSON 示例生成 Codable Swift struct,适用于 iOS/macOS 与 Swift 服务。

  1. 步骤 1 – 粘贴 JSON 示例

    • 将具有代表性的 JSON 对象或数组粘贴到左侧编辑器中。
    • 尽量包含嵌套对象、数组和可为 null 的字段,方便正确推断类型。
    • 使用 导入 从文件、URL 或示例数据加载 JSON。
  2. 步骤 2 – 选择 Swift struct 选项

    • 设置根 结构体名称(例如 Root)。
    • 确认可选字段映射为 String? 等可空类型。
    • 当 JSON 键与 Swift 命名不一致时,确认 key 映射策略。
  3. 步骤 3 – 检查生成的代码

    • 确认字段命名、类型推断,以及数组/对象的映射方式是否符合预期。
    • 根据需要调整 根类型名称、空值处理策略以及可选的框架选项。
    • 如果某些字段推断不准确,优化示例 JSON 后重新生成。
  4. 步骤 4 – 使用 Codable 解析 JSON

    • 将 struct 加入项目,并确保实现 Codable
    • 使用 JSONDecoder 将 JSON 解码为根结构体。
    • 按需添加 CodingKeys 或日期解码策略。
  5. 步骤 5 – 复制或下载

    • 将输出复制到项目中,或下载为文件。
    • 运行格式化/代码检查工具,让代码风格与项目保持一致。
    • 若目标语言需要序列化/解析库,请在项目中添加相应依赖。

快速提示

  • 时间字段可使用 JSONDecoder.dateDecodingStrategy 配合 ISO8601。
  • 需要 snake_case 转 camelCase 时,使用 CodingKeys 或 keyDecodingStrategy。
  • DTO 与 UI 模型分离,减少耦合。
示例输出(简化)
// JSON 输入
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// 生成的 Swift 模型(简化)
struct Metadata: Codable {
  let plan: String
}

struct Root: Codable {
  let id: Int
  let name: String
  let email: String?
  let active: Bool
  let roles: [String]
  let metadata: Metadata
  let createdAt: String
  let score: Double
  let notes: String?
}

相关 JSON 与 Swift 工具

探索更多可与本 JSON 转 Swift 生成器配合使用的 JSON 与 Schema 工具。

常见问题

支持哪些 Swift 特性?

生成器创建具有适当类型安全的 Swift 结构体,支持 Codable 协议进行 JSON 序列化/反序列化,对空值使用可选类型,并遵循 Swift 命名约定。

Codable 协议如何工作?

当选择 Codable 框架时,生成的结构体自动符合 Codable 协议,使用 JSONEncoder 和 JSONDecoder 实现无缝 JSON 编码/解码。

可选值如何处理?

JSON 中的空值映射到 Swift 中的可选类型 (?),提供类型安全性并需要显式解包,遵循 Swift 的空值安全方法。

Swift 的类型系统如何处理?

生成的 Swift 代码利用 Swift 的强类型系统,使用适当的类型(Int、Double、String、Bool、[Any]、[String: Any]),并使用结构体进行不可变数据模型的值语义。

JSON 转 Swift 生成器 | JSONSwiss