# JSON 转 Kotlin Data Class

将 JSON 数据转换为 Kotlin data class，含 @SerializedName 注解、可空处理与嵌套类型推断

> 标准页面: https://elysiatools.com/zh/tools/json-to-kotlin

- **分类:** Development

- **关键词:** json, kotlin, data class, 转换, SerializedName, gson

## 概述

本工具可快速将 JSON 数据转换为 Kotlin Data Class。它支持自动解析嵌套结构、推断数据类型，并提供可空属性配置与 @SerializedName 注解，帮助 Android 和 Kotlin 开发者高效构建数据模型。

## 输入项

- **JSON 输入** (textarea): { "name": "Alice", "age": 30, "roles": \["admin", "user"\], "address": { "city": "Shanghai", "zip": "200000" } }
- **根类型名称** (text): Root
- **可空属性** (checkbox)

## 适用场景

- 在开发 Android 应用时，需要根据后端 API 返回的 JSON 响应快速创建对应的 Kotlin 数据实体类。
- 需要为 Kotlin 属性自动添加 @SerializedName 注解，以确保与 Gson 或 Retrofit 等库无缝反序列化。
- 处理包含多层嵌套对象的复杂 JSON 结构，希望自动提取并生成多个关联的 Kotlin Data Class。

## 工作原理

- 在“JSON 输入”文本框中粘贴或输入您的原始 JSON 数据。
- 在“根类型名称”中输入您期望的主类名（例如 UserResponse），并根据需要勾选“可空属性”选项。
- 工具将即时解析 JSON 结构，自动推断字段类型并输出格式化好的 Kotlin Data Class 代码。

## 使用案例

- 快速构建 Android 客户端对接 API 接口所需的 Model 层数据结构。
- 将复杂的 JSON 配置文件转换为 Kotlin 强类型配置类，便于在项目中安全调用。
- 在重构或迁移项目时，快速将旧的 JSON 样例批量转换为 Kotlin Data Class。

## 常见问题

### 这个工具支持嵌套的 JSON 对象吗？

支持。工具会自动识别 JSON 中的嵌套对象，并为其生成独立的 Kotlin Data Class。

### “可空属性”选项有什么作用？

勾选后，生成的 Kotlin 属性类型将带有问号（如 String?），表示该字段允许为 null，有助于提升代码的空安全性。

### 生成的代码是否包含 @SerializedName 注解？

是的，工具会自动为生成的属性添加 @SerializedName 注解，以便与 Gson 等 JSON 解析框架配合使用。

### 如果 JSON 数组中包含混合类型会怎样？

工具会尝试推断数组元素的通用类型，建议在输入 JSON 时使用同构数组以获得最准确的转换结果。

### 我的 JSON 数据会被上传到服务器吗？

不会。所有的 JSON 解析与 Kotlin 代码生成过程均在您的浏览器本地完成，确保数据隐私安全。

## 相关工具

- [Data URI 生成器](https://elysiatools.com/zh/tools/data-uri-generator): 将文件转换为 Data URI（Base64 或百分号编码），用于直接在 HTML、CSS 或 Markdown 中内联图片、字体等资源
- [JSON Schema 转 Zod Schema 转换器](https://elysiatools.com/zh/tools/json-schema-to-zod-schema-converter): 将标准 JSON Schema 的 JSON/YAML 定义转换为可直接在 TypeScript 项目中使用的 Zod 运行时校验代码，支持嵌套结构、数组、枚举和常见校验规则
- [JSON 转 C# 类](https://elysiatools.com/zh/tools/json-to-csharp): 将 JSON 数据转换为 C# class，包含 PascalCase 属性、JsonPropertyName 特性与嵌套类型推断
- [JSON 转 Go Struct](https://elysiatools.com/zh/tools/json-to-go): 将 JSON 数据转换为 Go struct 定义，包含 json 标签、导出的 PascalCase 字段和嵌套类型推断
- [JSON 转 Java 类](https://elysiatools.com/zh/tools/json-to-java): 将 JSON 数据转换为 Java class，含 Jackson @JsonProperty 注解、私有字段及 getter/setter
- [JSON 转 Rust Struct](https://elysiatools.com/zh/tools/json-to-rust): 将 JSON 数据转换为 Rust struct，含 serde Serialize/Deserialize 派生、snake_case 字段与 serde rename 属性
- [JSON 转 TypeScript](https://elysiatools.com/zh/tools/json-to-typescript): 将 JSON 数据转换为 TypeScript interface 或 type，支持联合类型、可选字段与嵌套对象推断
- [日志转时序图转换器](https://elysiatools.com/zh/tools/log-sequence-diagram-converter): 把结构化服务日志转换成 Mermaid 或 PlantUML 时序图，并可叠加延迟和错误标注

## 示例

- [Android Kotlin 序列化示例](https://elysiatools.com/zh/samples/android-serialization-kotlin): Android Kotlin 序列化示例，包括JSON序列化、反序列化和XML解析
- [Terraform Plan JSON 样本](https://elysiatools.com/zh/samples/terraform-plan-json-samples): 用于依赖可视化和变更审查的 Terraform plan JSON 文件样本，贴近 terraform show -json 输出结构
- [聊天记录 JSON 示例](https://elysiatools.com/zh/samples/chat-transcript-json): 多角色聊天记录的 JSON 示例
- [JSON 示例](https://elysiatools.com/zh/samples/json): JSON（JavaScript 对象表示法）格式示例，从简单到复杂结构

## 相关内容

- [JSON 转强类型代码生成器（TypeScript、Go、Rust、Kotlin、Java、C#）](https://elysiatools.com/zh/hubs/json-to-typed-code-generators): 粘贴 JSON 即可获得可直接使用的类型：TypeScript 接口、Go 结构体、Rust serde 结构体、Kotlin 数据类、Java 类、C# 类、Zod schema 和推断的 JSON Schema。
- [JSON 交换与格式翻译工具](https://elysiatools.com/zh/hubs/json-convert): 在一个专题里比较 JSON 与 CSV、YAML、TOML、GraphQL、XML、Markdown、Excel、BSON、EDN 等结构化格式之间的转换工具。
- [JSON 检查、对比与转换工具](https://elysiatools.com/zh/hubs/json-utility): 把 JSON 格式化、差异对比、路径检查、Schema 校验、合并、转换和导出工具集中到一个专题中，适合 API 与数据处理流程。
- [JSON Schema、Mock 数据与 API 夹具生成工具](https://elysiatools.com/zh/hubs/json-generate): 围绕JSON Schema 生成、Mock 负载构建与 API 夹具准备整理的一组工具。
