UTILS.
100% 浏览器内运行
💠

JSON 转 C# 类

从 JSON 示例为 System.Text.Json 或 Newtonsoft.Json 生成 C# 模型类,带 PascalCase 属性和可为空的值类型。

输出

关于此工具

JSON 转 C# 类工具可将粘贴的 JSON 示例转换为 C# 模型类或 record,让 .NET 开发者能在几秒内从 API 响应搭建 DTO。它解析 JSON,递归推断 C# 类型,并为每个对象输出一个类型:字符串变为 string,ISO 日期时间字符串变为 DateTime,整数变为 int 或 long,其他数字变为 double,布尔值变为 bool,数组变为 List<T>,嵌套对象则各自生成 PascalCase 类并声明在引用它们的父级之前。

所有解析和代码生成都用 JSON.parse 和纯 JavaScript 在你的浏览器本地完成——不上传任何内容。属性以 PascalCase 自动属性形式输出,public T Prop { get; set; }。当 JSON 键与 PascalCase 属性名不同时,工具会为 System.Text.Json 添加 [JsonPropertyName("originalKey")],或为 Newtonsoft 添加 [JsonProperty("originalKey")],且只包含必需的 using 指令。

任何样本中可能为 null 的值类型属性会被设为可空(int?, double?, bool?, DateTime?),而像 string 和 List 这样的引用类型本就可空。序列化器开关可在 System.Text.Json(默认)和 Newtonsoft.Json 之间切换属性和 using 风格;形态开关可输出类(默认)或 record。复制代码,或将其下载为 .cs 文件。

常见问题

JSON 类型如何映射到 C#?
string 变为 string,ISO 日期时间变为 DateTime,整数变为 int(超出 int 范围时变为 long),非整数数字变为 double,布尔值变为 bool,数组变为 List<T>,对象变为命名的类或 record。可空的值类型会带上尾部 ? 修饰符。
System.Text.Json 还是 Newtonsoft?
序列化器开关可任选其一。它控制当属性名与 JSON 键不同时使用的属性——System.Text.Json 用 [JsonPropertyName("key")],Newtonsoft 用 [JsonProperty("key")]——以及对应的 using 指令。
我可以生成 record 而非类吗?
可以。形态开关可在 public class(默认)和 public record 之间切换,保持相同的 PascalCase 自动属性和 JSON 属性,让你可以选择代码库偏好的风格。
JSON 是私密处理的吗?
是的。一切都在你的浏览器中用 JSON.parse 和纯 JavaScript 运行;示例永不上传,因此粘贴真实的 API 载荷是安全的。

更多工具