JSON TO CSHARP

JSON 转 C#:生成 class、List 和基础属性类型。

将 API 响应转为 C# 数据模型初稿,适合 ASP.NET Core、.NET 服务和 Unity 项目。生成后仍应按序列化框架和领域模型规则审阅。

输入 JSON 后生成 C# class。
JSON 输入0 字符 · 0 行
C# 输出class
C# 类型定义会显示在这里。
当前结果包含基础 class、自动属性和 List 类型。它不会添加 JsonPropertyName、JsonConverter、验证特性或业务构造函数。

生成的 C# 代码包含什么?

JSON 样例

{
  "id": 42,
  "active": true,
  "items": [{"sku": "A-01"}]
}

基础值、布尔值和对象数组都会被推断。

生成方向

public class OrderResponse
{
    public int Id { get; set; }
    public bool Active { get; set; }
    public List<OrderResponseItemsItem> Items { get; set; }
}

对象会生成 class,数组根据第一个元素生成 List<T>

生成后需要补充的 .NET 规则

接口数据情况工具输出项目中应补充什么
snake_case 或连字符字段转换为可用的 C# 属性名如保留原始 JSON 名,按框架添加 JsonPropertyName 等映射。
字段偶尔不存在依据当前样例生成属性按 nullable reference types 和接口文档调整可空性或默认值。
日期、金额、ID通常是 stringintdouble改为 DateTimedecimallong 或值对象。
null 或空数组只能生成通用或基础类型按领域规则明确实际类型和初始化策略。

nullable 开关实际影响什么?

打开开关会在生成代码顶部加入 #nullable enable。这能让编译器开始检查可空引用,但它不会凭一份 JSON 样例准确推断“字段是否一定存在”。可空性仍然要由接口契约决定。

不要因为工具生成了 class 就跳过反序列化测试。至少用一份真实响应跑一次 System.Text.Json 或你项目使用的序列化器。

常见问题

会生成 JsonPropertyName 或 Newtonsoft.Json 特性吗?
不会。当前页面只生成基础模型。字段名与 JSON 不一致时,请在项目中按所用序列化框架补充特性或命名策略。
为什么属性名会和原 JSON 不完全一样?
C# 属性需要合法标识符,工具会将特殊字符整理为可用名称。若接口要求保留原字段名,请补充显式映射。
数组中的对象结构不同怎么办?
工具只参考第一个数组元素。若数组是多态数据,需要手动设计基类、派生类或自定义转换器。