类型生成

JSON 转实体类一份样本,五种源码

先看两条记录的示例,再选目标语言和根类型名。

JSON 转实体类

JSON 输入

JSON 只在此浏览器内解析和生成;样本不会上传或保存。

生成的模型 · Rust

模型选项

会扫描数组中的全部记录。缺失或 null 字段标为可空;未知类型请在项目中复核。

2 个声明 · 2 处可空类型

JSON 转实体类适合手里只有 API 响应、却需要尽快建立类型草稿的时候。把形状不同的同类记录放进一个数组,第二条才出现的字段也不会被漏掉。 同一份 JSON 转模型后可切换目标语言。

生成结果是待审查的起点。单份样本不能证明业务规则、未来字段、金额精度或项目使用的序列化设置。

为什么用 JSON 转实体类?

合并每条数组记录

JSON 转实体类会检查顶层数组的所有对象。只在后面记录出现的字段仍会进入模型;部分记录缺少的字段标为可空。

两张含不同字段的对象卡片汇入一张完整模型卡片,可空字段用空心圆标记。

保留样本,切换语言

同一份本地 JSON 可以分别生成 Rust、C#、Dart、PHP 和 Scala 模型;下载文件的扩展名跟随当前语言。

一张数据卡片分出多条路径,通向几张不同结构的源码卡片。

让样本反映真实形状

01

放入有差异的记录

把同一接口的几条对象放在顶层数组中。数组后面的新字段会成为可空字段,嵌套数组也会扫描所有可见元素。

02

看清各语言的输出范围

Rust 使用 Serde 属性,C# 使用 System.Text.Json 属性,Dart 带 fromJson/toJson;PHP 与 Scala 只提供模型声明,仍需项目侧映射。

03

只导出最新结果

自动生成在修改后等待 350 毫秒。关闭后出现“生成模型”,也可按 Ctrl/Cmd+Enter;输入或选项变化会先禁用复制和下载。

五种可用模型输出

Rust 与 C# 键名映射

JSON 转 Rust 结构体带 Serde rename、Option 和 Vec;C# 实体类生成结果用 JsonPropertyName 保存原始键名,并标出可空属性。

Dart 构造与映射

Dart Model 生成结果包含字段及嵌套对象、列表的 fromJson/toJson。请用项目实际的 Dart 或 Flutter 环境测试。

PHP 与 Scala 声明

PHP 8 输出类型属性和数组元素注释;Scala case class 根据样本使用 Option 与 List,反序列化 codec 需另行配置。

数字先按原始词法推断

这个 JSON 转实体类工具在推断前不会让 JavaScript 把大整数舍入;超出范围或含小数的值改用较宽的目标语言类型。

样本推断的真实边界

只展示五种已实现语言
选择器仅有 Rust、C#、Dart、PHP、Scala。TypeScript、Go、Java、Python 和 Swift 已有各自工具,这里不放不可用的语言按钮。
样本不是 Schema
不读取 JSON Schema 或 OpenAPI 的 required、范围与引用,也不从 URL 拉取数据。单个样本无法证明枚举、日期、货币等业务含义。
宽泛数字仍要核对
有符号 64 位以内的整数会选较窄类型;更大的整数和小数使用宽泛类型,实际项目仍需确认序列化器能否精确保留。
声明不等于完整应用
PHP 属性不会被 json_decode 自动填充,Scala case class 需要 codec;Rust 需要 Serde 依赖。此页不会编译或执行生成代码。
严格 JSON 与规模限制
注释、重复键、尾随逗号和顶层混合数组会报错。输入最多 500,000 字符、深度 100、节点 50,000,输出最多 1,000,000 字符。

JSON 转实体类常见问题

支持哪些编程语言?

此页支持 Rust、C#、Dart、PHP 和 Scala。选择器只显示这五种已经实现的输出,下载时使用对应扩展名。

对象数组只读取第一项吗?

会检查顶层数组的全部对象。部分记录缺少或值为 null 的字段会标为可空;只有 null、没有实际值的字段仍是未知类型。

null 和缺失字段会生成什么类型?

会。嵌套对象生成具名模型,数组根据所有可见元素推断元素类型;元素类型混杂时会退回宽泛类型,需要更多样本判断。

嵌套对象如何生成类?

可以。默认名是 Root,输入以大写字母开头的 ASCII 名称后,会重新生成声明并更新下载文件名。

生成的代码能直接反序列化 JSON 吗?

Dart 含 fromJson/toJson;Rust 带 Serde derive,C# 带 System.Text.Json 键名属性。PHP 与 Scala 仅生成声明,应用仍要提供映射或 codec。

还有没覆盖的数据形状?

开始生成 JSON 转实体类草稿

用多条真实记录运行 JSON 转实体类,检查可空字段和命名,再下载当前语言的源码,在项目中完成测试。