跳到正文
馬克工具箱

JSON 轉 Rust 結構體

貼上 JSON,得到可直接配合 serde_json 使用的 Rust 結構體。欄位使用 snake_case,必要時加 rename 屬性;可選或可空的值使用 Option,巢狀物件生成獨立的結構體。

在瀏覽器本地執行,輸入的內容和檔案都不會上傳

使用步驟

  1. 貼上 JSON 示例,或點「載入示例」。
  2. 設定根結構體的名稱。
  3. 複製或下載程式碼。在 Cargo.toml 中新增啟用 derive 特性的 serde 和 serde_json。

引數說明

根型別名稱
頂層結構體的名稱,巢狀結構體按鍵名命名。

使用示例

{"userName": "ada", "type": "admin"} 會生成:

#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Root {
    #[serde(rename = "userName")]
    pub user_name: String,
    pub r#type: String,
}

常見問題

需要哪些 crate?

啟用 derive 特性的 serde,以及用於解析的 serde_json。推斷不出型別的值使用 serde_json::Value。

鍵名是 Rust 關鍵字怎麼辦?

例如 type 會寫成原始辨識符號 r#type。serde 會自動去掉 r# 字首,不需要額外 rename。

數字用什麼型別?

整數用 i64,小數用 f64。

JSON 資料會上傳嗎?

不會。型別在瀏覽器中生成,包含真實資料的介面返回也不會離開你的裝置。

隱私說明

本工具完全在瀏覽器中執行,檔案和文字都在你的裝置上處理,不會上傳到我們的伺服器。

相關工具