跳到正文
马克工具箱

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 数据会上传吗?

不会。类型在浏览器中生成,包含真实数据的接口返回也不会离开你的设备。

隐私说明

本工具完全在浏览器中运行,文件和文本都在你的设备上处理,不会上传到我们的服务器。

相关工具