关键信息
- 分类
- 开发与 Web
- 输入类型
- textarea, text, checkbox
- 输出类型
- text
- 样本覆盖
- 4
- 支持 API
- Yes
概览
本工具可以将 JSON 数据快速转换为 Rust 结构体(Struct)。它支持自动生成 serde 的 Serialize 和 Deserialize 派生宏,自动将字段名转换为 Rust 规范的 snake_case 命名,并添加 serde rename 属性,帮助开发者快速构建 Rust 的数据反序列化模型。
适用场景
- •在 Rust 项目中对接外部 API,需要根据 API 返回的 JSON 响应快速定义数据结构时。
- •使用 serde 库进行 JSON 序列化与反序列化,需要为复杂嵌套的 JSON 数据编写对应的 Rust 结构体时。
- •需要将驼峰命名(camelCase)或其他格式的 JSON 键名自动转换为 Rust 规范的蛇形命名(snake_case)并保留映射关系时。
工作原理
- •在输入框中粘贴或输入需要转换的原始 JSON 数据。
- •根据需要设置根类型名称(默认为 Root),并选择是否开启“用 Option 包裹”以处理可选字段。
- •工具会自动解析 JSON 结构,生成对应的 Rust 结构体代码,并附带 serde 派生宏与重命名属性。
使用场景
用户案例
1. 快速对接第三方用户 API
Rust 后端开发人员- 背景原因
- 正在使用 Axum 框架开发一个社交应用,需要对接一个返回复杂用户信息的第三方 JSON API。
- 解决问题
- 手动编写包含嵌套地址和标签列表的 Rust 结构体非常繁琐,且容易写错字段类型。
- 如何使用
- 将 API 返回的 JSON 粘贴到输入框中,设置根类型名称为 `UserProfile`,点击转换。
- 示例配置
-
根类型名称: UserProfile, 用 Option 包裹: 未勾选 - 效果
- 获得了一组带有 `#[derive(Serialize, Deserialize)]` 的 Rust 结构体,嵌套的地址被自动提取为 `Address` 结构体,字段也自动转为了 snake_case。
2. 解析含可选字段的配置文件
系统架构师- 背景原因
- 需要在 Rust 服务中读取一个 JSON 配置文件,其中部分配置项(如端口、日志级别)是可选的。
- 解决问题
- 如果不用 Option 包裹,当 JSON 中缺失这些字段时,反序列化会失败。
- 如何使用
- 粘贴配置文件的 JSON 样例,将根类型名称设为 `AppConfig`,勾选“用 Option 包裹”选项。
- 示例配置
-
根类型名称: AppConfig, 用 Option 包裹: 已勾选 - 效果
- 生成的 Rust 结构体中所有字段均被 `Option<T>` 包裹,能够安全地反序列化不完整的 JSON 配置。
用 Samples 测试
json相关专题
常见问题
这个工具支持嵌套的 JSON 对象吗?
支持。工具会自动提取嵌套的 JSON 对象并将其转换为独立的 Rust 结构体,同时在父结构体中进行引用。
转换后的字段命名规则是什么?
字段名会自动转换为 Rust 推荐的 snake_case 命名,并通过 `#[serde(rename = "...")]` 属性保留原始的 JSON 键名。
“用 Option 包裹”选项有什么作用?
开启后,生成的结构体字段将使用 `Option<T>` 类型包裹,适用于处理 JSON 中可能缺失或为 null 的可选字段。
生成的结构体包含哪些派生宏?
默认会为生成的结构体添加 `#[derive(Serialize, Deserialize, Debug)]` 等 serde 常用派生宏。
JSON 中的数组类型在 Rust 中如何表示?
JSON 中的数组会被转换为 Rust 的 `Vec<T>` 类型,其中 `T` 是数组元素的对应类型。