JSON 转 C#
为 System.Text.Json 或 Newtonsoft.Json 生成 C# 类或 record
粘贴 JSON 或加载示例以生成 C# 代码。
JSON 转 C# 会生成什么
JSON 转 C# 会将 API 响应或任意 JSON 示例转换为 C# 类型,输出到一个使用文件范围命名空间的文件中。Class 模式生成 { get; set; } 属性;Record 模式生成位置记录,并用 [property: ...] 将特性放到生成的属性上。System.Text.Json 使用 [JsonPropertyName("key")],Newtonsoft.Json 使用 [JsonProperty("key")]。属性永远不会与其所在类型同名,因为 C# 不允许这样做。
使用方法
- 1.粘贴 JSON、上传或拖放 .json 文件,或加载一个示例。
- 2.设置根类型名称和可选的命名空间,例如 Company.Project.Models。
- 3.选择类型风格、属性命名方式和可为 null 的引用类型。
- 4.选择序列化器和特性策略,然后复制代码或下载 <Root>.cs。
类型如何推断
- •会检查数组中的每个元素,而不只是第一个,同一数组中的对象会被合并。
- •部分对象中缺少的键为可选;有时为 null 的键为可为 null。两者分开处理。
- •同一位置出现 1 和 2.5 时会放宽为小数;其他混合情况会给出提示。
- •空数组和始终为 null 的值没有类型依据,因此使用通用类型,并附提示说明原因。
- •类型映射:string → string,整数按范围 → int、long、ulong 或 decimal,小数 → double,布尔值 → bool,数组 → List<T>,对象 → class 或 record,缺失或 null → T?,未知或混合 → object。
- •required 成员需要 C# 11 / .NET 7 或更高版本;此时 System.Text.Json 会拒绝缺少必需键的 JSON。
限制与隐私
示例只反映数据某一次的样子,而不是完整的 API 契约。在依赖这些代码之前,请检查可选字段、通用类型和数字宽度。输入限制为 5 MB 和 256 层嵌套;从 2 MB 起,需点击“生成”按钮才会生成。所有处理都在您的浏览器中运行,JSON 不会被上传。使用 System.Text.Json 时,object 属性在反序列化后保存的是 JsonElement。
