JSON转C#实体类

在线JSON转C#实体类工具,基于 quicktype 引擎将JSON自动生成C#类代码。支持自定义根类名、可空引用类型,一键生成含属性与 JSON 特性的强类型实体类,适用于 API 对接、数据建模与反序列化。

原始大小
0 字符
代码大小
0 字符
类数量
0
转换状态
等待生成
输入 0 字符
JSON 输入 等待输入
C# 实体类代码

                

功能特性

一键生成

基于 quicktype 引擎,将 JSON 自动推断类型并生成可直接编译的 C# 实体类代码,省去手工编写属性的繁琐工作。

JSON 特性标注

自动为属性添加 [JsonPropertyName] 特性,保留原始 JSON 字段名映射,反序列化时大小写与命名风格无缝对接。

嵌套类型推断

自动识别嵌套对象与数组,生成对应的子类与 List<T> 集合属性,复杂结构也能完整建模。

自定义根类名

支持指定生成的根类名称,自动规范化为合法的 C# 标识符(过滤非法字符、数字开头加下划线、首字母大写)。

可空引用类型

可选启用 C# 8+ 可空引用类型(--nullable),为可能缺失的字段生成可空注解,提升空安全与编译期检查。

安全可靠

JSON 解析与代码生成在后端完成,临时文件即用即删,不存储您的数据,保障数据隐私安全。

使用说明

如何使用 JSON 转 C# 实体类工具?

  • 在左侧输入框中粘贴或输入需要转换的 JSON 数据。
  • 「根类名」输入框中指定生成的根类名称(默认 RootObject,自动规范化为合法标识符)。
  • (可选)勾选「可空引用类型」启用 C# 8+ 可空注解(--nullable)。
  • 点击「生成C#类」按钮,右侧将显示生成的 C# 实体类代码。
  • 上方统计卡片显示原始大小代码大小类数量转换状态
  • 点击「复制代码」可将代码复制到剪贴板,或点击「下载」保存为 .cs 文件。
  • 点击「示例」按钮加载演示数据,点击「清空」清除输入和结果。

生成规则

  • 类型推断:字符串推断为 string,整数推断为 long,浮点数推断为 double,布尔推断为 bool,null 推断为可空。
  • 对象:JSON 对象生成对应的 C# 类,属性名转为 PascalCase,并通过 [JsonPropertyName] 保留原始字段名。
  • 数组:JSON 数组生成 List<T> 集合属性,元素类型由数组内容推断;嵌套对象数组生成子类集合。
  • 嵌套结构:嵌套对象自动拆分为独立的子类,并以 PascalCase 命名,保持类型层级清晰。
  • 可空注解:开启「可空引用类型」后,引用类型属性标注为可空(string?),便于编译期空安全检查。
  • 类名规范:根类名仅保留字母数字下划线,数字开头加下划线前缀,首字母自动大写。

使用场景

  • API 对接:根据接口返回的 JSON 快速生成 C# 反序列化模型,加速 HttpClient 调用开发。
  • 数据建模:将 JSON 配置或数据样本转换为强类型实体类,用于业务逻辑与数据绑定。
  • 反序列化:生成含 [JsonPropertyName] 特性的模型,配合 System.Text.Json 直接反序列化。
  • 代码生成:作为脚手架快速产出实体类骨架,再在此基础上补充业务方法与校验逻辑。

常见问题

JSON 转 C# 实体类工具是免费的吗?
是的,本工具完全免费,无需注册登录。JSON 数据发送到后端进行解析与代码生成,生成的临时文件即用即删,不在服务器存储,保障数据隐私安全。
「可空引用类型」选项有什么作用?
开启后会在 quicktype 命令中追加 --nullable 参数,生成的 C# 代码启用可空引用类型注解(C# 8+ 特性)。引用类型属性会标注为可空(如 string?),表示该字段在 JSON 中可能缺失或为 null,便于编译期空安全检查与可空上下文项目直接使用。
生成的代码使用哪个序列化库?
生成的 C# 实体类使用 [JsonPropertyName] 特性,基于 .NET 内置的 System.Text.Json 序列化。无需额外安装第三方库,直接使用 JsonSerializer.Deserialize<T>(json) 即可反序列化,性能优秀且依赖最少。
根类名有什么命名规则?
根类名会被自动规范化为合法的 C# 标识符:仅保留字母、数字、下划线,其余字符被过滤;若以数字开头则自动加下划线前缀;首字母自动大写。例如输入 my-config1 会被规范为 Myconfig1。留空时默认使用 RootObject
嵌套对象和数组如何处理?
嵌套 JSON 对象会被拆分为独立的 C# 子类,并以 PascalCase 命名,主类通过属性引用子类,保持类型层级清晰。JSON 数组会生成 List<T> 集合属性,元素类型由数组内容推断;若数组元素是对象,则生成对应的子类集合。复杂嵌套结构也能完整建模。
生成代码时报 quicktype 错误怎么办?
本工具依赖服务器端安装的 quicktype 命令行工具进行代码生成。若提示「未找到 quicktype 命令」或执行失败,请联系管理员在服务器执行 npm install -g quicktype 安装。同时请确保输入的是合法的 JSON 数据,JSON 格式错误会在解析阶段给出明确提示。