JSON 轉 Rust

從 JSON 產生含 Serde 屬性的 Rust struct

JSON 輸入

選項

模型
序列化

Rust 輸出

貼上 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. 1.貼上 JSON、上傳或拖放 .json 檔案,或載入其中一個範例。
  2. 2.設定根 struct 名稱,並選擇 Debug、Clone 與 Serde derive。
  3. 3.選擇自動重新命名、固定規則,或僅逐欄位重新命名。
  4. 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。

CodingTool 已正式上線於

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch