🧩

JSON 轉 TypeScript

貼上 JSON 即生成 TypeScript 型別:巢狀物件自動提取為獨立 interface、陣列元素合併為聯合型別、缺失欄位自動標可選;支援 interface / type / zod schema 三種輸出與 camelCase、snake_case 等欄位命名,解析失敗時給出行列位置。
型別生成 📂 開發 👤 ToolWorld 🏷️ v1.9.4 ⚙️ clipboard
自動識別物件、陣列、數字、布林、null,陣列元素型別會合併為聯合型別
生成結果

    
嵌套物件自動提取為獨立 interface,陣列內物件命名為「欄位名Item」
型別映射規則
JSON 值TypeScript說明
"abc"string雙引號字串
1 / 1.5number整數與小數
truebooleantrue / false
nullnull輸出 null 或合併為可選
[1,2]number[]元素型別 + []
[]unknown[]空陣列輸出 unknown[]
{"a":1}A提取為獨立 interface
[1,"a"]number | string多型別合併為聯合

使用說明

工具介紹

介面文件裡給一段 JSON 樣本,前端要 TypeScript 型別,後端可能是 Go 的 struct、Python 的 dataclass、Rust 的 serde 結構,驗證層還要 zod。本工具從同一段樣本一次產生六種形態,欄位名與可選性保持一致,不會出現前端叫 userName、後端叫 user_name 的漂移;巢狀物件自動提成獨立型別,陣列內物件依「欄位名Item」命名。

功能特點

  • 六種輸出:interface、type 別名、zod schema、Go struct、Rust serde、Python dataclass
  • 欄位命名四檔:保持原樣、camelCase、PascalCase、snake_case
  • 缺失欄位設為可選:樣本中未出現的鍵以可選屬性處理,而不是編造值
  • 巢狀物件自動抽取為獨立型別,陣列元素合併為聯合型別
  • 錯誤定位到行列:解析失敗時給出第幾列第幾欄與上下文片段
  • 根型別名可自訂,縮排 2/4 空格可選,支援複製全部與下載 .ts 檔案

使用方式

  1. 把 JSON 貼進輸入框,或點「範例」載入一段含巢狀與陣列的樣本
  2. 填「根型別名」(預設 Root),選擇縮排與輸出形式
  3. 依需要開啟「加 export」「缺失欄位設為可選」,選擇欄位命名規則
  4. 點「產生型別」,在結果區看到全部型別定義
  5. 用「複製全部」取走程式碼,或「下載 .ts」存成檔案

注意事項

  • 輸出基於單一樣本:樣本裡沒有出現的欄位不會被推斷出來,真實介面請用涵蓋最全的一筆回應;六種方言共用同一份欄位與可選性。
  • 同一欄位跨記錄出現多種型別時合併為聯合型別(如 number | string);空陣列只能給 unknown[],需依實際資料手工補全元素型別。
  • 可選欄位輸出為 key?: type,語意是鍵可能不存在,與值為 null 不同;日期字串保持 string,避免寫入時區與格式假設。
  • zod 輸出需自行安裝依賴,Go 輸出帶 json tag,Rust 輸出帶 serde 屬性但需引入 serde 依賴,Python dataclass 會改寫非法識別字並保留原鍵註解。
  • 解析失敗會給出列欄位置便於定位漏逗號;數值統一以 number 處理,不區分 int64 與 float;只做型別產生,不做驗證執行與 schema 版本比對。

相關推薦

⏫︎
💬