为什么需要 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> |
属性名会把首字母改为大写(如 userId → UserId)。根类名默认为 Root;若根是数组,则取第一个元素生成类。
使用步骤
示例
输入:
{
"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) |
生成后建议手工调整
- 加上
namespace、nullable注解(string?)与required System.Text.Json/ Newtonsoft 的[JsonPropertyName]映射- 日期字符串改为
DateTime/DateTimeOffset - 嵌套对象补全独立 class 定义
- 大整数(超出
int)改为long
工具输出是起点,不是最终生产代码。
注意事项
- 仅浏览器本地处理,不上传。
- 必须是标准 JSON;尾逗号、注释会失败。
- 同一字段在不同元素类型不一致时,以样例中出现的值为准,请用代表性数据。
相关工具
- JSON 校验
- JSON 转 SQL
- Excel 转 JSON — 表格先转 JSON 再生成实体
常见问题
Q:能生成 record / 主键特性吗?
A:当前为经典 class + { get; set; },record 与特性需自行改。
Q:根是数组怎么办?
A:用第一个元素的结构生成类;可把单个对象作为输入更直观。
Q:与 Visual Studio「粘贴 JSON 为类」?
A:思路类似;网页免开 IDE,适合快速草稿。