JSON 转 C#

将 JSON 数据转换为 C# class,基于 quicktype 引擎,支持 NewtonSoft/System.Text.Json 框架切换与丰富代码生成选项。

使用说明

功能介绍

本工具基于 quicktype 引擎将 JSON 数据自动转换为 C# class 定义,支持类型推断(string/bool/long/double/List/嵌套类)、NewtonSoft 与 System.Text.Json 框架切换、命名空间配置、数组类型选择(List 或 Array)、输出特性控制以及多种代码风格选项。生成的代码可配合相应序列化框架直接使用。

操作步骤

在左侧文本框输入或粘贴 JSON 数据,设置根类型名称、命名空间(默认 Example)、序列化框架(NewtonSoft 或 System.Text.Json)及其他生成选项,右侧将实时生成 C# 代码,点击「复制结果」一键复制到剪贴板。也可点击「加载示例」快速体验。

配置选项

  • 序列化框架:NewtonSoft(默认,生成 JsonProperty 特性)或 System.TextJson(生成 JsonPropertyName 特性)。
  • 数组类型:List<T> 或 T[],控制数组字段的 C# 类型。
  • 输出特性:complete(完整转换器+特性)、attributes-only(仅特性)、just-types-and-namespace(仅类型与命名空间)、just-types(仅类型)。
  • 数字类型:double 或 decimal,控制浮点数字段的 C# 类型。
  • any 类型:object 或 dynamic,控制 any 类型字段的 C# 类型。
  • C# 版本:5 或 6,影响生成代码的语法特性使用。
  • 基类:Object(默认)或 EntityData,控制生成类的基类。
  • 虚拟属性:勾选后属性生成 virtual 修饰符。
  • 检查必填:勾选后若 JSON 缺失必填属性则生成失败。
  • 保留原字段名:勾选后使用 [JsonProperty] 保留原始字段名而不做 PascalCase 转换。

注意事项

数字类型根据值自动推断为 long(整数)或 double(浮点数);null 值推断为 object;数组默认生成 List<T>,可切换为 T[]。嵌套对象会生成对应的嵌套类定义。使用 System.TextJson 框架时需引用 System.Text.Json.Serialization 命名空间;使用 NewtonSoft 框架时需引用 Newtonsoft.Json 命名空间。