JSON 转 C# 类和记录生成器

JSON 输入

正在加载编辑器…

生成的 C#

Configuration

输入 JSON 数据为您的 .NET 项目生成强类型 C# 类和记录

类、记录、DTO 和具有可空引用类型的属性

如何将 JSON 转换为 C# – 分步指南

使用此 JSON 转 C# 生成器,可从 JSON 示例生成 C# 类或 record,适用于 ASP.NET Core 与 .NET 应用。

  1. 步骤 1 – 粘贴 JSON 示例

    • 将具有代表性的 JSON 对象或数组粘贴到左侧编辑器中。
    • 尽量包含嵌套对象、数组和可为 null 的字段,方便正确推断类型。
    • 使用 导入 从文件、URL 或示例数据加载 JSON。
  2. 步骤 2 – 选择 C# 生成选项

    • 设置 类名命名空间,与项目结构保持一致。
    • 如需属性标注,可选择 JSON 框架(System.Text.JsonNewtonsoft.Json)。
    • 启用可空引用类型,让可选字段映射为 string? 等类型。
  3. 步骤 3 – 检查生成的代码

    • 确认字段命名、类型推断,以及数组/对象的映射方式是否符合预期。
    • 根据需要调整 根类型名称、空值处理策略以及可选的框架选项。
    • 如果某些字段推断不准确,优化示例 JSON 后重新生成。
  4. 步骤 4 – 在 .NET 中使用 DTO

    • 将输出放入项目的 DTO/Models 目录并参与编译。
    • 使用所选序列化器将 JSON 反序列化为根类型实例。
    • 当需要版本兼容时,建议 DTO 与领域模型分离。
  5. 步骤 5 – 复制或下载

    • 将输出复制到项目中,或下载为文件。
    • 运行格式化/代码检查工具,让代码风格与项目保持一致。
    • 若目标语言需要序列化/解析库,请在项目中添加相应依赖。

快速提示

  • 尽量使用 record 来表达不可变模型(视项目风格而定)。
  • 当 JSON 键与 C# 命名不一致时,使用 [JsonPropertyName]/[JsonProperty] 显式映射。
  • 尽早校验输入,避免出现部分初始化对象。
示例输出(简化)
// JSON 输入
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// 生成的 C# DTO(简化)
public class Metadata
{
    public string Plan { get; set; } = string.Empty;
}

public class Root
{
    public int Id { get; set; }
    public string Name { get; set; } = string.Empty;
    public string? Email { get; set; }
    public bool Active { get; set; }
    public List<string> Roles { get; set; } = new();
    public Metadata Metadata { get; set; } = new();
    public DateTime CreatedAt { get; set; }
    public double Score { get; set; }
    public object? Notes { get; set; }
}

相关 JSON 与 C# 工具

探索更多可与本 JSON 转 C# 生成器配合使用的 JSON 与 Schema 工具。

常见问题

此 JSON 转 C# 生成器支持哪些 C# 特性?

生成器创建具有属性的 C# 类和 C# 9+ 记录,支持 JSON.NET 和 System.Text.Json 属性,并遵循具有适当命名空间的现代 .NET 命名约定。

可以生成 C# 记录和 DTO 模型而不仅仅是类吗?

可以!选择 'Record' 作为框架可以生成具有不可变属性的现代化 C# 记录,非常适合数据传输对象 (DTO)、API 契约和值类型。

JSON 序列化如何与生成的 C# 类型一起工作?

生成器支持 Newtonsoft.Json 和 System.Text.Json 属性,用于使用自定义属性名称、空值处理和灵活配置进行正确的 JSON 序列化和反序列化。

可空引用类型和可选 JSON 字段如何处理?

生成器为可以为空的属性包含可空注解 (object?),遵循现代 C# 可空引用类型约定,使安全映射可选 JSON 字段变得更容易。

我可以在 ASP.NET Core 或 Blazor 项目中使用生成的 C# 类吗?

可以。JSON 转 C# 代码在 ASP.NET Core 控制器、最小 API、Blazor 组件以及任何需要 JSON 有效负载的强类型模型的 .NET 应用程序中都能很好地工作。

这个 JSON 转 C# 生成器是免费的吗?

是的,JSON Swiss JSON 转 C# 生成器可以在浏览器中免费使用。您可以粘贴 JSON、配置选项并生成 C# 代码,而无需安装任何工具或扩展。

JSON 转 C# 类和记录生成器 | JSONSwiss