PAGE LOAD / LIVEJSON转Kotlin · 免费在线生成data class加载中
JSON 转 Kotlin · 免费在线生成 data class · 工具说明与使用指南

JSON 转 Kotlin · 免费在线生成 data class

免费在线 JSON 转 Kotlin 工具,粘贴 JSON 一键生成 data class,字段用 val 声明、构造参数式写法,自动带上 equals/hashCode/toString/copy。适合 Android 与 Kotlin 后端接接口模型。Kotlin 的空安全是这里最需要手工确认的部分:推断出的类型默认非空,而接口实际可能返回 null。纯浏览器本地生成,不上传、免登录。

使用步骤

  1. 粘贴接口返回的 JSON(本页已自动预选 Kotlin)。
  2. 填写根类名,默认 Root。
  3. 复制生成的 data class 代码。
  4. 按接口协议把可能为 null 的字段加上 ?,并补序列化注解。

常见问题

生成的字段是可空的吗?
默认不可空(String、Int 而不是 String?)。这是按样例 JSON 推断的结果,只要样例里有值就当作非空。实际接口若可能返回 null 或不返回该字段,反序列化会抛异常,所以务必按协议给这些字段补上 ?,并考虑给默认值。
JSON 键是 user_name,字段名 userName 能对上吗?
不能自动对上,生成结果不含序列化注解。用 Gson 需要加 @SerializedName("user_name"),用 Moshi 加 @Json(name = "user_name"),用 kotlinx.serialization 加 @SerialName("user_name") 并给类加 @Serializable。也可以在解析器层统一配置蛇形转驼峰策略,省去逐字段标注。
val 和 var 该选哪个?
生成的是 val(只读),适合接口响应这类一次性构造的不可变模型,配合 copy() 做局部修改。如果这个类要参与表单双向绑定或需要就地修改字段,把 val 改成 var 即可,data class 两者都支持。
kotlinx.serialization 还需要额外配置吗?
需要给每个 data class 加 @Serializable,并在构建脚本里启用 kotlin serialization 插件与运行时依赖。另外它对未知字段默认严格,接口新增字段会报错,可以配置 ignoreUnknownKeys = true 放宽。Gson 和 Moshi 默认忽略未知字段,无需此配置。
嵌套对象生成的类怎么组织?
嵌套对象生成同级的独立 data class,根类以字段类型引用。Kotlin 允许一个文件放多个顶级类,整段复制即可编译。也可以把子类挪进根类内部作为嵌套类,注意 Kotlin 的内部类默认是静态语义,不需要额外加关键字。

转其它语言实体类