JSON 转 C# 实体类:根据样例快速生成 class

2026-07-22

为什么需要 JSON 转 C#

对接第三方 API 时,文档里常有一段 JSON 样例,手写 C# 实体费时还容易漏字段。ComTools JSON 转 C#Tools/Json/ToCSharp)在浏览器本地解析 JSON,按字段值推断类型,输出 public class 与自动属性,作为 DTO / Model 初稿。

类型推断规则

JSON 值 C# 类型
整数 int
小数 double
布尔 bool
字符串 / null string
原始类型数组 List<int> / List<string>
对象 / 对象数组元素 以属性名作类型名,或 List<object>

属性名会把首字母改为大写(如 userIdUserId)。根类名默认为 Root;若根是数组,则取第一个元素生成类。

使用步骤

  1. 打开 JSON 转 C#
  2. 粘贴 JSON 样例(可点「示例」)。
  3. 建议先用 JSON 校验 确认合法。
  4. 点击 运行,右侧复制生成的 C# 代码到项目。

示例

输入:

{
  "id": 1,
  "name": "Alice",
  "active": true,
  "score": 98.5,
  "tags": ["vip", "new"]
}

输出示意:

public class Root
{
    public int Id { get; set; }
    public string Name { get; set; }
    public bool Active { get; set; }
    public double Score { get; set; }
    public List<string> Tags { get; set; }
}

常见场景

场景 建议
Web API 响应 DTO 贴真实响应 → 生成 → 再补命名空间与特性
嵌套对象 生成后手工补全嵌套 class,或拆成多个样例分别生成
空数组 [] 得到空类壳,请换成含元素的样例
只要可读 JSON 格式化
表结构转实体 SQL 转 C#(CREATE TABLE)

生成后建议手工调整

  • 加上 namespacenullable 注解(string?)与 required
  • System.Text.Json / Newtonsoft 的 [JsonPropertyName] 映射
  • 日期字符串改为 DateTime / DateTimeOffset
  • 嵌套对象补全独立 class 定义
  • 大整数(超出 int)改为 long

工具输出是起点,不是最终生产代码。

注意事项

  • 仅浏览器本地处理,不上传。
  • 必须是标准 JSON;尾逗号、注释会失败。
  • 同一字段在不同元素类型不一致时,以样例中出现的值为准,请用代表性数据。

相关工具

常见问题

Q:能生成 record / 主键特性吗?
A:当前为经典 class + { get; set; },record 与特性需自行改。

Q:根是数组怎么办?
A:用第一个元素的结构生成类;可把单个对象作为输入更直观。

Q:与 Visual Studio「粘贴 JSON 为类」?
A:思路类似;网页免开 IDE,适合快速草稿。


English version