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 命名空间。