這個JSON到型別生成器的作用
寫模型類以手寫一個大API響應是緩慢的,容易出現錯誤的。貼上一個 JSON 樣本,這個工具推斷出一個完整的型別模型,並將其列印成 Go 結構使用 json 標籤,Rust 結構使用 serde 衍生,Zod 方案,Pydantic 模型,Kotlin 資料類,Java 記錄,C# 類,Swift Codable 結構或 TypeScript 介面。嵌入式物件會成為自己的命名型別,物件陣列會被合併,
使用方法
- 貼上JSON到輸入或載入樣本。
- 設定 根型別名稱,例如
User或OrderResponse。 - 選擇目標語言。輸出會立即再生。
- 複製程式碼到您的專案中並調整您的域知識超過推理的名稱或型別。
推理是如何工作的
- 可選欄位: 如果陣列中的某些元素缺少一個鍵,則標記為可選 (TS 中的
?,Rust 中的Option<T>,Go 中的omitempty,Pydantic 中的= None)。 - 可取消的欄位:
null值使得目標語言中的欄位可以取消。 - **數:**整數和浮量分別被追蹤,因此
42變成int64/i64/Long,而4.2變成浮量型別。 - **混合型別:**當同一個欄位包含不同的型別時,具有聯盟的語言 (TypeScript,Zod,Pydantic) 得到一個聯盟,而其他型別則迴歸到一個通用JSON值型別。
- 命名:
user_id或created-at這樣的金鑰每種語言都被轉換為語義欄位名稱,原始金鑰被儲存在標籤或註釋中 (json:"user_id",#[serde(rename)],@SerialName,CodingKeys)。
提示
- 給它一個代表性樣本。一個空陣列的單個物件不會告訴該工具陣列的專案。
- 將多個響應合併到一個頂級陣列中,以可靠地捕獲可選欄位。
- 結果出口的模式和推斷型別,所以你得到執行時驗證和靜態打字一起。