JSON 转 Dart
免费在线 JSON 转 Dart 工具。粘贴接口样例即可生成带类型的数据类,包含 fromJson/toJson 工厂、空安全与 final 字段,可直接用于 Flutter,全程在浏览器本地完成。
JSON 转 Dart 工具会生成什么?
它生成可直接使用的 Dart 类:每个模型都有带类型的字段以及 fromJson 和 toJson 工厂方法,用纯 Dart 即可解码和编码 API 数据,不需要 build_runner 或额外依赖包。
嵌套对象是怎么处理的?
每个 JSON 对象都会生成一个独立的类。父类持有嵌套类型的字段,fromJson 里递归调用子类工厂,toJson 里调用子类的 toJson,深层结构会映射成一棵小类树。
对象数组怎么处理?
不同数组元素的对象会被合并:所有键的并集构成一个元素类,字段类型为 List<元素类>。某些元素缺失的键会自动标记为可空。
空安全(null safety)选项改变了什么?
开启空安全后,可能缺失或为 null 的字段会加 ? 后缀,构造函数把它们变成可选命名参数,fromJson 用可空感知的转换来读取;关闭则输出普通非空风格的类型。
什么时候应该开启 final 选项?
final 让所有字段在构造后不可变,这是 Dart 数据类的推荐写法,还能让分析器帮你捕捉对模型的意外修改。
JSON 键不是合法 Dart 标识符怎么办?
类似 @type 或 order-id 的键会自动重命名为合法的驼峰标识符(以数字开头时加 $ 前缀)。生成的 fromJson 仍读取原始键名字符串,并且会列出所有被改名的字段。
类名是怎么确定的?
顶层类名取自"类名"输入框(自动转成 PascalCase)。嵌套类根据产生它的 JSON 键生成 PascalCase 名,例如 user_profile 会变成 UserProfile 类。
我的 JSON 会被上传吗?
不会。解析和代码生成完全在浏览器中进行,.dart 文件也在本地生成供下载,私有的 API 样例和令牌不会离开你的设备。
如何使用JSON 转 Dart
在浏览器中直接把 JSON 样例变成可直接使用的 Dart 数据类。类、工厂方法与类型转换全部在本地生成,你的数据不会被上传。
- 把 JSON 粘贴到左侧编辑器,右侧随输入实时显示 Dart 代码(300ms 防抖)。
- 在“Class name:”中填写顶层类名,会自动转换为 PascalCase。
- 打开“Null safety”开关,为可空字段加 ? 并在 fromJson 中生成可空感知的类型转换。
- 打开“final”开关让所有字段不可变,然后复制结果或下载为 .dart 文件。
嵌套对象会生成独立的类,对象数组合并为一个 List<元素类> 的元素类;@type 这类非法键会自动改名,而 fromJson 仍读取原始键名。
相关工具
- JSON转TypeScript 将JSON数据即时转换为TypeScript接口和类型定义。支持嵌套对象、数组和联合类型。
- JSON转Go结构体 即时将JSON转换为Go结构体定义。粘贴JSON即可生成带正确类型、json标签和omitempty支持的整洁Go代码。
- 文件哈希校验 本地计算校验MD5、SHA-1、SHA-256、SHA-512文件哈希值
- Chmod 计算器 免费在线chmod计算器,通过复选框可视化Linux文件权限并计算chmod值。即时转换数字(755, 644)和符号(rwxr-xr-x)表示法,支持setuid、setgid、sticky bit等特殊权限。
- ASCII码表 完整的ASCII字符编码参考表,包含十进制、十六进制、八进制、二进制编码、HTML实体和字符描述。支持即时搜索和筛选。
- Hex文件查看器 以十六进制转储格式查看文件内容,支持搜索、偏移导航和虚拟滚动
- MIME类型查询 通过文件扩展名即时查询MIME类型,或反向查找扩展名。免费在线工具,收录1000+条目。
- 屏幕分辨率检测 实时检测屏幕分辨率、视口大小、DPI、色深等显示器信息。