JSON 轉 Scala 產生器

JSON 輸入

正在載入編輯器…

生成的 Scala

Configuration

輸入 JSON 資料以產生 Scala case class

不可變 case class 與框架支援

如何將 JSON 轉換為 Scala – 步驟指南

使用此 JSON 轉 Scala 產生器,可從 JSON 範例產生 Scala case class,適合 JVM 服務與資料處理。

  1. 步驟 1 – 貼上 JSON 範例

    • 將具有代表性的 JSON 物件或陣列貼到左側編輯器。
    • 盡量包含巢狀物件、陣列與可為 null 的欄位,方便正確推斷型別。
    • 使用 匯入 從檔案、URL 或示例資料載入 JSON。
  2. 步驟 2 – 選擇 Scala 模型選項

    • 為產生的 case class 設定根 Class Name
    • 決定可選欄位如何表示(例如 Option[String])。
    • 確認巢狀物件與陣列對應到巢狀 case class 與 List/Seq
  3. 步驟 3 – 檢查產生的程式碼

    • 確認欄位命名、型別推斷,以及陣列/物件的對應方式是否符合預期。
    • 依需求調整 根型別名稱、null 處理策略與可選的框架選項。
    • 若某些欄位推斷不準確,優化 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 case class,支援 Circe 與 Play JSON 框架進行序列化,並遵循 Scala 命名慣例與適當的套件結構。

可以產生與 Circe 相容的類別嗎?

可以!選擇「Circe」框架可產生 case class,並透過 Circe 的 generic semi‑automatic derivation 自動推導 JSON codec。

Play JSON 整合如何運作?

選擇 Play JSON 時,產生器會加入 implicit Format 實例,以支援 Play Framework 的 JSON 序列化/反序列化。

不可變與函數式程式設計呢?

產生的 Scala case class 預設為不可變,支援 pattern matching,並自動提供 equals/hashCode/toString,符合函數式程式設計原則。

JSON 轉 Scala 產生器 | JSONSwiss