JSON 转 Scala 生成器

JSON 输入

正在加载编辑器…

生成的 Scala

Configuration

输入 JSON 数据以生成 Scala 样例类

具有框架支持的不可变样例类

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

使用此 JSON 转 Scala 生成器,可从 JSON 示例生成 Scala case class,适用于 JVM 服务与数据处理。

  1. 步骤 1 – 粘贴 JSON 示例

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

    • 为生成的 case class 设置根 类名
    • 决定可选字段如何表示(例如 Option[String])。
    • 确认嵌套对象与数组映射为嵌套 case class 与 List/Seq
  3. 步骤 3 – 检查生成的代码

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

    • 将 case class 复制到项目源码中。
    • 使用你偏好的 JSON 库反序列化为模型类型。
    • 对业务依赖的字段添加必要校验。
  5. 步骤 5 – 复制或下载

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

快速提示

  • 缺失/null 字段使用 Option,不要使用哨兵值。
  • 让模型与 API 契约保持一致,减少运行时不匹配。
  • 需要跨服务共享契约时,建议生成 JSON Schema。
示例输出(简化)
// 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
}

// 生成的 Scala 模型(简化)
final case class Metadata(plan: String)

final case class Root(
  id: Long,
  name: String,
  email: Option[String],
  active: Boolean,
  roles: List[String],
  metadata: Metadata,
  createdAt: String,
  score: Double,
  notes: Option[Any]
)

相关 JSON 与 Scala 工具

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

常见问题

支持哪些 Scala 特性?

生成器创建具有不可变字段的 Scala 样例类,支持 Circe 和 Play JSON 框架进行序列化,并遵循具有适当包结构的 Scala 命名约定。

可以生成与 Circe 兼容的类吗?

可以!选择 'Circe' 作为框架可以生成使用 Circe 的通用半自动派生进行自动 JSON 编解码器派生的样例类。

Play JSON 集成如何工作?

当选择 Play JSON 框架时,生成器添加隐式 Format 实例,以便使用 Play Framework 进行自动 JSON 序列化/反序列化。

不可变性和函数式编程如何处理?

生成的 Scala 样例类默认是不可变的,支持模式匹配,并包含自动的 equals/hashCode/toString 方法,遵循函数式编程原则。

JSON 转 Scala 生成器 | JSONSwiss