放入有差异的记录
把同一接口的几条对象放在顶层数组中。数组后面的新字段会成为可空字段,嵌套数组也会扫描所有可见元素。
类型生成
先看两条记录的示例,再选目标语言和根类型名。
JSON 只在此浏览器内解析和生成;样本不会上传或保存。
2 个声明 · 2 处可空类型
JSON 转实体类适合手里只有 API 响应、却需要尽快建立类型草稿的时候。把形状不同的同类记录放进一个数组,第二条才出现的字段也不会被漏掉。 同一份 JSON 转模型后可切换目标语言。
生成结果是待审查的起点。单份样本不能证明业务规则、未来字段、金额精度或项目使用的序列化设置。
JSON 转实体类会检查顶层数组的所有对象。只在后面记录出现的字段仍会进入模型;部分记录缺少的字段标为可空。
同一份本地 JSON 可以分别生成 Rust、C#、Dart、PHP 和 Scala 模型;下载文件的扩展名跟随当前语言。
把同一接口的几条对象放在顶层数组中。数组后面的新字段会成为可空字段,嵌套数组也会扫描所有可见元素。
Rust 使用 Serde 属性,C# 使用 System.Text.Json 属性,Dart 带 fromJson/toJson;PHP 与 Scala 只提供模型声明,仍需项目侧映射。
自动生成在修改后等待 350 毫秒。关闭后出现“生成模型”,也可按 Ctrl/Cmd+Enter;输入或选项变化会先禁用复制和下载。
JSON 转 Rust 结构体带 Serde rename、Option 和 Vec;C# 实体类生成结果用 JsonPropertyName 保存原始键名,并标出可空属性。
Dart Model 生成结果包含字段及嵌套对象、列表的 fromJson/toJson。请用项目实际的 Dart 或 Flutter 环境测试。
PHP 8 输出类型属性和数组元素注释;Scala case class 根据样本使用 Option 与 List,反序列化 codec 需另行配置。
这个 JSON 转实体类工具在推断前不会让 JavaScript 把大整数舍入;超出范围或含小数的值改用较宽的目标语言类型。
此页支持 Rust、C#、Dart、PHP 和 Scala。选择器只显示这五种已经实现的输出,下载时使用对应扩展名。
会检查顶层数组的全部对象。部分记录缺少或值为 null 的字段会标为可空;只有 null、没有实际值的字段仍是未知类型。
会。嵌套对象生成具名模型,数组根据所有可见元素推断元素类型;元素类型混杂时会退回宽泛类型,需要更多样本判断。
可以。默认名是 Root,输入以大写字母开头的 ASCII 名称后,会重新生成声明并更新下载文件名。
Dart 含 fromJson/toJson;Rust 带 Serde derive,C# 带 System.Text.Json 键名属性。PHP 与 Scala 仅生成声明,应用仍要提供映射或 codec。
还有没覆盖的数据形状?