JSON 转 Kotlin 数据类
JSON 转 Kotlin data class 工具,生成简洁的数据类,支持 Jackson、kotlinx.serialization、Klaxon 三种序列化框架与自定义包名,空安全类型(?)自动标注。生成在浏览器本地完成,Android 与服务端开发适用。
在工作台中打开 本地处理 · 数据不上传
怎么使用
- 1
粘贴 JSON
粘贴接口 JSON,嵌套对象生成关联 data class,集合生成 List<T>。
- 2
选择框架与包名
Jackson(Spring 生态)、kotlinx.serialization(官方/KMP)或 Klaxon,填写包名。
- 3
复制 Kotlin 代码
生成可空类型标注准确的 data class,复制到项目即可。
功能特点
三套序列化方案
Jackson 注解、@Serializable 的 kotlinx.serialization、轻量 Klaxon 按需切换。
空安全准确标注
null 字段与多样例分析结合,该加 ? 的字段加问号,减少 NPE 与强制非空断言。
data class 简洁输出
主构造器属性 + 默认值,equals/hashCode/toString/copy 由 Kotlin 自动获得。
包名可配
package 声明按项目规范生成,Android 多模块项目直接落位。
常见错误与排查
- ! Android + Retrofit 常用 kotlinx.serialization 或 Moshi(本工具可选 Jackson 注解后手工微调)。
- ! Spring Boot Kotlin 后端直接选 Jackson 并引入 jackson-module-kotlin。
- ! 纯 data class(仅类型)不含任何框架注解,也可配合 Gson 直接反序列化。
常见问题
为什么有的字段类型后面有问号?
JSON 中出现 null 或缺失时,该字段被视为可空(String?)。Kotlin 空安全要求显式标注,反序列化结果使用时编译器会强制判空,更安全。
kotlinx.serialization 怎么接入?
选择 kotlinx 框架后,类上带 @Serializable、字段带 @SerialName;项目需启用 kotlin("plugin.serialization") 并添加 kotlinx-serialization-json 依赖。
字段默认值是怎么定的?
可空字段默认 null,保证缺键时反序列化不抛异常;非空字段按样例存在性给出,建议结合接口文档复核 required 语义。