JSON 转 C# 类

将 JSON 数据转换为 C# class,包含 PascalCase 属性、JsonPropertyName 特性与嵌套类型推断

关键信息

分类
开发与 Web
输入类型
textarea, text, checkbox
输出类型
text
样本覆盖
4
支持 API
Yes

概览

本工具可以将 JSON 数据快速转换为强类型的 C# 类(class)。它支持自动推断嵌套对象类型、生成符合 C# 规范的 PascalCase 属性命名,并自动添加 `JsonPropertyName` 特性,帮助 .NET 开发者快速完成数据模型的反序列化配置。

适用场景

  • 在 .NET 项目中对接第三方 API,需要根据返回的 JSON 响应快速构建对应的 C# 数据传输对象(DTO)时。
  • 需要将复杂的嵌套 JSON 结构反序列化为强类型的 C# 对象,避免手动编写繁琐的类定义时。
  • 在使用 System.Text.Json 进行序列化时,需要为不规范的 JSON 键名自动生成带有 `JsonPropertyName` 特性的 C# 属性时。

工作原理

  • 在输入框中粘贴或输入需要转换的原始 JSON 数据。
  • 设置根类名称(默认为 Root),并根据需要勾选是否启用“可空属性”选项。
  • 工具会自动解析 JSON 结构,推断字段类型(如 string、int、List 等)及嵌套对象,并即时生成对应的 C# 类代码。

使用场景

快速生成 Web API 接口的请求与响应实体类(DTO)。
将本地 JSON 配置文件转换为 C# 强类型配置类。
配合 System.Text.Json 快速解析不规则命名的第三方 JSON 数据源。

用户案例

1. 快速对接第三方用户 API

后端开发工程师
背景原因
正在开发一个 .NET 8 系统的后端模块,需要对接外部用户管理系统的 API,该 API 返回一个包含用户基本信息和地址信息的 JSON。
解决问题
手动编写对应的 C# 实体类不仅效率低下,而且容易因为拼写错误导致反序列化失败。
如何使用
将 API 返回的 JSON 粘贴到“JSON 输入”框中,将“根类型名称”设置为 `UserProfile`,勾选“可空属性”以防某些字段缺失,然后点击转换。
示例配置
{"rootName": "UserProfile", "optionalFields": true}
效果
获得了一组包含 `UserProfile` 和 `Address` 的 C# 类,属性均采用 PascalCase 命名,并带有 `[JsonPropertyName]` 特性,且所有属性均为可空类型。

2. 转换复杂嵌套的商品列表 JSON

软件架构师
背景原因
需要在项目中集成一个电商平台的商品列表接口,返回的 JSON 结构非常复杂,包含多层嵌套的规格、价格区间和图片列表。
解决问题
嵌套层级深,手动定义内部类和集合类型非常繁琐。
如何使用
将商品列表 JSON 粘贴至输入框,设置根类名为 `ProductListResponse`,保持“可空属性”为未勾选状态以生成非空属性。
示例配置
{"rootName": "ProductListResponse", "optionalFields": false}
效果
自动生成了 `ProductListResponse`、`ProductItem`、`PriceRange` 等多个嵌套类的定义,数组字段被正确推断为 `List<T>` 集合。

用 Samples 测试

json

相关专题

常见问题

这个工具支持嵌套的 JSON 对象吗?

支持。工具会自动解析嵌套的 JSON 对象和数组,并为其生成独立的 C# 子类。

转换后的属性命名规则是什么?

属性名会自动转换为 C# 推荐的 PascalCase 命名法,同时通过 `JsonPropertyName` 特性保留原始的 JSON 键名映射。

什么是“可空属性”选项?

勾选该选项后,生成的 C# 属性类型将使用可空类型(例如 string? 或 int?),适用于 JSON 中可能缺失或为 null 的字段。

支持哪些 .NET 版本的 JSON 序列化库?

生成的类默认带有 `System.Text.Json.Serialization` 命名空间下的 `JsonPropertyName` 特性,适用于 .NET Core 及更高版本的内置序列化器。

如果 JSON 数组中包含混合类型,工具会如何处理?

工具会尝试推断最通用的基类类型,或将其推断为 object 类型以确保代码能够正常编译。

API 文档

请求端点

POST /zh/api/tools/json-to-csharp

请求参数

参数名 类型 必填 描述
jsonInput textarea -
rootName text -
optionalFields checkbox -

响应格式

{
  "result": "Processed text content",
  "error": "Error message (optional)",
  "message": "Notification message (optional)",
  "metadata": {
    "key": "value"
  }
}
文本: 文本

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-json-to-csharp": {
      "name": "json-to-csharp",
      "description": "将 JSON 数据转换为 C# class,包含 PascalCase 属性、JsonPropertyName 特性与嵌套类型推断",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=json-to-csharp",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

如果遇见问题,请联系我们:[email protected]