工具用的順手嗎?
你的回饋能幫助我們做得更好
將JSON資料轉換為Crystal類定義,自動生成型別安全的序列化程式碼。
概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
將有效的 JSON 貼入工具後,可取得依樣例結構推斷的 Crystal 型別程式碼,作為 API 回應或設定資料模型的起點。JSON 的值可以是字串、數字、布林值、null、物件或陣列;巢狀物件和陣列也能表達多層資料。輸入範例若只有一筆,輸出反映的就是這筆資料看得到的欄位與值,不等同正式 schema,也不代表已涵蓋所有資料版本。
此頁預設以 Crystal 為目標,型別名稱可自訂,並提供「僅型別定義」選項。結果是程式碼文字,不會替你建立 API 客戶端、業務規則或專案測試。Crystal 官方的 JSON::Serializable 文件說明了 Crystal 型別如何加入 JSON 序列化與反序列化能力;實際生成內容是否採用所需映射方式,仍應檢查輸出並依專案需求補充。
推斷依據是範例中實際出現的內容。例如整數值與小數值呈現不同數字形態,字串、布林值、物件和陣列也各有不同結構。某欄位若在樣例中是 null、某欄位未出現,或陣列恰好為空,僅靠這份樣例可能無法表達正式資料中的所有情況。JSON 規格也允許陣列元素是不同型態,因此混合內容特別需要人工核對。RFC 8259 列出 JSON 的基本值類別與陣列形式,可參考 IETF 的 JSON 規格。
指南
依步驟完成操作,並透過範例核對輸入與結果。
在 JSON 輸入區貼上有效資料。若使用 API 回應,先移除憑證、個人資料或其他不宜分享的值,並保留能呈現欄位型態與巢狀關係的代表性內容。
將型別名稱改成專案採用的名稱;頁面會依此名稱產生根型別。Crystal 是此頁目標語言,無須在此頁切換其他語言。
需要時展開選項並確認「僅型別定義」設定。輸入變更後工具會更新結果;若 JSON 格式錯誤,先修正引號、逗號或括號,再查看程式碼。
逐一對照輸出與來源 JSON,特別檢查欄位名稱、巢狀型別、陣列元素及 null。確認後可複製或下載,再放入使用中的 Crystal 專案編譯與調整。
例如樣例 {"member":{"name":"林","active":true}} 能呈現一個內含字串與布林值的巢狀物件。若正式資料中的 member 可能缺漏、為 null,或具有其他欄位,請補充樣例或在輸出中自行處理這些變化。
情境
查看這項工具在不同工作與生活流程中的用法。
Crystal 開發者可用脫敏的回應樣例先建立型別骨架,再參照 API 契約檢查可選欄位、null 與版本差異,最後在專案中完成編譯測試。
維護 JSON 設定檔時,可先依代表性設定產生 Crystal 型別,再核對欄位命名與預設值處理方式,避免把單一環境的樣例誤當成所有設定的完整定義。
學習 Crystal 或閱讀陌生 JSON 時,可比較輸入物件與輸出的巢狀型別,藉此整理結構;序列化行為與 Crystal 版本相容性仍以官方文件及實際編譯結果為準。
問答
集中解答常見疑問與容易混淆的問題。
不能。它只展示當前樣例中的欄位和值;請比較多筆資料或正式 schema,補查可能缺少、為 null 或型態不同的欄位。
確認物件鍵與字串使用雙引號、逗號位置正確,且大括號和方括號成對。修正後再看生成結果。
不要只憑型別程式碼推定序列化設定已完成。Crystal 的 JSON::Serializable 可提供相關能力,但請查看本次輸出是否包含專案需要的宣告與欄位映射,並依 Crystal 版本文件及專案測試確認。
請先檢查並在目標 Crystal 版本編譯。欄位映射、可空型別、數字範圍、初始化方式和業務驗證都要依正式資料契約確認。
須知
使用前了解適用範圍、結果限制與必要提醒。
由樣例推斷的型別不是正式資料契約。缺少欄位不一定等於可選欄位;單一數字樣例也無法保證實際值永遠是整數或落在相同範圍。空陣列沒有元素可供觀察,混合型態陣列、特殊欄位名稱及跨版本資料都可能需要手動修改。若有正式 schema、API 文件或多種實例,應以它們為準。
生成結果不會替你完成業務驗證,也不保證符合專案使用的 Crystal 版本、命名慣例或 JSON 欄位映射。請把輸出當作待審核的程式碼草稿,在自己的專案檢查與編譯。含有個人資料、密碼、權杖或內部資訊的 JSON,請先以虛構值取代後再輸入。
推薦
查找相關工具、專題與可用的 API 能力。