工具用的順手嗎?
你的回饋能幫助我們做得更好
將標準JSON資料一鍵解析為支援Codable協議的Swift結構體或類程式碼,用於iOS/macOS開發。
概覽
了解工具能解決的問題、計算或處理邏輯,以及資料邊界。
這項工具適合 iOS、macOS 與 Swift 開發者:貼上一份有效 JSON,設定根型別名稱,即可依樣本產生 Swift 程式碼,並複製或下載 .swift 檔。巢狀物件會形成相應型別,陣列則依樣本元素推斷型別;例如 {"name":"Ada","age":30,"active":true} 會讓工具依序推斷字串、整數與布林欄位。這是從一份資料樣本推論結構,不是讀取 API 規格或驗證正式服務回應。
JSON 是交換結構化資料的文字格式,能表示字串、數字、布林、null、物件與陣列。Swift 的 Codable 則用於型別的編碼與解碼。頁面預設選擇 struct 並開啟「僅型別定義」,所以預設結果不會宣告 Codable;若需要相關程式碼,可在高階選項關閉此設定,再檢查產生的初始化器與 CodingKeys 是否符合專案需求。即使有產生 Codable 內容,也不代表已通過編譯或符合你的 API 契約。
推斷結果描述的是「這份樣本看起來如何」,而非欄位永遠固定的保證。樣本中的 30 與 30.5 可能導向不同數值型別;日期字串可能被推斷為 Date,列舉、UUID、字串數字、字串布林與類似字典的物件也各有推斷選項。若 API 欄位有時缺少、有時為 null,或同一欄位可能出現不同形態,單一樣本不足以決定正確的 Swift 型別。
Swift 專屬設定包括 struct/class、是否只產生型別、程式碼密度、初始化器、CodingKeys 產生方式、屬性是否可變,以及縮寫字的命名風格。常見初始值是 struct、只產生型別、一般密度、開啟初始化器、依 JSON 鍵產生 CodingKeys、使用不可變屬性。預設模式重視模型宣告;需要編碼解碼相關程式碼時,須留意「僅型別定義」開關會改變輸出內容。
指南
依步驟完成操作,並透過範例核對輸入與結果。
可使用物件或陣列樣本。若手上的內容是 API 日誌,先取出純 JSON 本文;格式錯誤時,程式碼結果不會生成。可用「格式化」整理 JSON,或載入範例確認操作方式。
將預設的 Root 改為專案容易辨識的名稱,例如 OrderResponse。確認要用結構體還是類別;若想要 Codable 相關輸出,先關閉「僅型別定義」,再依需要設定初始化器、CodingKeys 與可變屬性。
日期時間、UUID、列舉、映射與字串數字等推斷都可調整。當欄位的真實 API 型別已知,優先依契約決定是否保留推斷結果;不要只因樣本像日期或數字,就假定所有回應都相同。
生成完成後可複製程式碼,或下載以型別名稱命名的 Swift 檔。將結果放入專案前,檢查欄位名稱映射、可空性、日期解碼方式與數值型別,並以多筆真實回應測試。
情境
查看這項工具在不同工作與生活流程中的用法。
iOS 開發者取得一份 JSON 回應後,可先產生巢狀物件與陣列的型別架構,再按照 API 文件補足選擇性欄位、日期策略與錯誤處理。這能省下重複輸入欄位宣告的時間,仍需自行驗證實際解碼。
面對新舊版回應樣本時,分別生成型別並比較欄位與巢狀結構,可協助發現新增或改名的鍵。差異是否相容、舊版 App 要如何處理,仍要回到版本契約與測試判斷。
用含有字串、整數、布林、巢狀物件與陣列的小型範例,逐項調整推斷選項,可觀察輸入樣本如何影響宣告。這適合用來學習與探索,不應以教學樣本取代正式資料驗證。
問答
集中解答常見疑問與容易混淆的問題。
預設開啟「僅型別定義」,輸出聚焦於型別宣告,不會自動宣告 Codable。需要編碼解碼相關程式碼時,關閉該選項後再檢查結果是否包含專案所需的協定與 CodingKeys。
一份樣本只呈現當次出現的資料;沒有出現的欄位不代表正式回應永遠存在。請查 API 契約,並用缺欄位及 null 樣本驗證,必要時手動調整為 Optional。
若屬性名稱經過轉換,需確認輸出的 CodingKeys 能否對應原始 JSON 鍵。預設只產生型別時不會提供這層映射;可關閉該模式並選擇 CodingKeys 設定,或依 Apple 文件與專案既有策略手動處理。
不能只根據推斷就保證可解碼。需確認伺服器實際日期格式,並設定相符的 JSONDecoder 日期策略;若格式不固定,也可關閉日期推斷並保留字串後自行處理。
須知
使用前了解適用範圍、結果限制與必要提醒。
產生的程式碼是依樣本建立的起點,不能證明正式服務資料符合這個結構。請以 API 契約與多種真實回應檢查後,再納入專案。
null、缺欄位、超出預期範圍的整數與整數/小數混用,都可能使生成型別不適合完整資料集。特別注意金額或識別碼等欄位的精度與範圍。undefined、NaN 與尾隨逗號不是標準 JSON 語法。推薦
查找相關工具、專題與可用的 API 能力。