JSON 转 C#

为 System.Text.Json 或 Newtonsoft.Json 生成 C# 类或 record

JSON 输入

选项

模型
类型风格
序列化

C# 输出

粘贴 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. 1.粘贴 JSON、上传或拖放 .json 文件,或加载一个示例。
  2. 2.设置根类型名称和可选的命名空间,例如 Company.Project.Models。
  3. 3.选择类型风格、属性命名方式和可为 null 的引用类型。
  4. 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。

CodingTool 已正式上线于

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch