提供能反映差异的记录
根输入必须是对象,或仅含对象的非空数组。数组用来合并元素模型,不会虚构包装字段;内部数组会递归检查全部元素。
类型生成
比较两个样本与对应字段。根数组生成元素模型,解码整个数组时使用 List<Root>。
解析与生成均在浏览器完成,输入不会上传或存储。
数组输入:此文件定义元素模型,解码时使用 List<Root>。
2 个类 · 2 个可空字段
只有接口响应、没有类型定义时,可以用 JSON 转 Java 建立初稿。把多个有代表性的对象放进数组,后续记录才出现的字段也会被纳入,缺失与 null 会影响可空类型。
这个 POJO 生成器不能从样本证明业务字段必填。JSON 转 Java 实体类适合减少重复录入;生成后仍需根据接口契约检查类型和校验逻辑。
JSON 转 Java 会查看数组中同一位置的所有对象结构。第二条记录才有的字段不会遗漏,某条记录缺少字段或明确给出 null 时,会采用更宽的字段类型。
连字符、中文键和保留字不能直接照搬成属性名。工具生成合法名称并用 Jackson 注解保留映射,名称相撞时增加稳定的数字后缀,嵌套对象有独立类型。
根输入必须是对象,或仅含对象的非空数组。数组用来合并元素模型,不会虚构包装字段;内部数组会递归检查全部元素。
按样本判断时,仅缺失或出现 null 的字段变为可空;全部可空会装箱 Java 原始类型,并给 Kotlin 属性增加问号与 null 默认值。关闭嵌套后,辅助类放在同一文件的顶层。
自动生成等待 350 ms;关闭开关后使用生成按钮或 Ctrl/Cmd+Enter。输入或选项变化立即禁用导出。清空和载入示例保留一次撤销,可恢复输入、参数和结果。
有符号 64 位范围内的普通整数使用 long/Long;更大整数使用 BigInteger;小数和指数写法使用 BigDecimal,包括 1.0 与 1e3。类型判断不经过 JavaScript 浮点数。
选择 Kotlin 即可进行 JSON 转 Kotlin 数据类。缺失或为 null 的属性使用 T? = null,其他属性不加默认值;空根对象使用普通 class,避免生成没有参数的非法 data class。
属性转为 ASCII 驼峰命名,碰撞时顺序加后缀。Java 字段带 JsonProperty;Kotlin 的构造参数和 getter 分别带注解。类型使用全限定名,根类叫 String 或 List 也不会遮蔽。
默认 Java 为公开字段及静态嵌套类,Kotlin 为嵌套数据类。关闭嵌套后,Java 辅助类是非公开顶层类,Kotlin 辅助类为顶层类;下载仍只有一个源文件。
JSON 转 Java 合并同一位置的所有样本,再选择布尔、字符串、整数、小数、集合或对象类型。类型冲突回退 Object/Any,不会只根据第一条记录猜测。
解析和生成均在当前浏览器执行,不上传或存储输入。这里没有远程 URL 获取或分享样本链接的入口。
不会。页面只生成源文件,不执行用户代码。下载后在自己的项目加入 Jackson 依赖、包声明及测试,再进行编译和解码验证。
默认按观察结果装箱 Java 原始字段,或生成 Kotlin 的 T? = null。全部可空模式更保守。缺失与显式 null 不分为两个状态,未来必填条件仍要查接口契约。
工具先生成合法名称,再通过 Jackson 注解保留原始键。保留字和名称碰撞会改名;关闭注解则拒绝此类输入。空字符串键始终需要 Map 或自定义解码方案。
发现需要补充的推断边界?