JSON 轉 Rust
從 JSON 產生含 Serde 屬性的 Rust struct
貼上 JSON 或載入範例,即可產生 Rust 程式碼。
JSON 轉 Rust 會產生什麼
JSON 轉 Rust 會將 API 回應或任何 JSON 範例轉成 Rust struct。開啟 Serde 時,每個 struct 都會 derive Serialize 與 Deserialize。自動重新命名會檢查 Serde 本身的大小寫規則,只有在能還原該 struct 的每個鍵時才加入 #[serde(rename_all = "camelCase")](或其他規則);不符合的鍵會加上 #[serde(rename = "...")]。選用欄位會加上 #[serde(default, skip_serializing_if = "Option::is_none")],寫回時仍保持缺省。
使用方式
- 1.貼上 JSON、上傳或拖放 .json 檔案,或載入其中一個範例。
- 2.設定根 struct 名稱,並選擇 Debug、Clone 與 Serde derive。
- 3.選擇自動重新命名、固定規則,或僅逐欄位重新命名。
- 4.閱讀輸出下方的提示,然後複製程式碼或下載 models.rs。
型別如何推斷
- •會檢查陣列中的每個元素,而不只是第一個,同一陣列中的物件會合併。
- •部分物件缺少的鍵為選用;有時為 null 的鍵為可為 null。兩者分開處理。
- •同一位置出現 1 與 2.5 時會放寬為小數;其他混合情況會回報。
- •空陣列與一律為 null 的值沒有型別依據,因此使用泛用型別,並以提示說明原因。
- •型別對應:string → String、integer → i64(超出時為 u64 或 serde_json::Value)、decimal → f64、boolean → bool、array → Vec<T>、object → struct、缺少或 null → Option<T>、unknown 或混合 → serde_json::Value。
限制與隱私
範例只代表資料某一次的樣貌,並非完整的 API 合約。依賴程式碼前,請檢查選用欄位、泛用型別與數字寬度。輸入上限為 5 MB 與 256 層巢狀;從 2 MB 起,需按下「產生」按鈕才會產生。所有處理都在瀏覽器中執行,JSON 不會上傳。即使關閉 Serde derive,泛用值仍需要 serde_json crate。
