JSON 转 C# 实体类
JSON 转 C# 实体类工具,生成 C# Model,支持 .NET 内置的 System.Text.Json 与 Newtonsoft.Json 两套注解、自定义命名空间与根类名,属性首字母自动大写。生成在浏览器本地完成,接口数据不上传。
在工作台中打开 本地处理 · 数据不上传
怎么使用
- 1
粘贴 JSON
粘贴 JSON 响应,嵌套对象生成 partial class,数组生成数组类型属性。
- 2
选择框架与命名空间
System.Text.Json(.NET Core 默认)或 Newtonsoft.Json,填写 namespace 与根类名。
- 3
复制 C# 代码
自动生成完毕后复制,粘贴到 Models 目录即可直接反序列化。
功能特点
双框架支持
System.Text.Json 使用内置 JsonSerializer;Newtonsoft.Json 输出 [JsonProperty] 特性,老项目也能直接沿用。
命名空间可配
按项目结构填写 MyApp.Models,生成代码自带 namespace 包裹。
C# 命名规范化
JSON 的 snake_case 键自动转为 PascalCase 属性名,序列化特性保留原名映射。
可空与集合类型
null 字段与数组按样例推断为 object / 可空类型与强类型数组,减少装箱与手动转换。
常见错误与排查
- ! .NET Core 3.0+ / .NET 5+ 优先选 System.Text.Json,无需额外 NuGet 包。
- ! 需要与老 WebForm / .NET Framework 项目兼容时选 Newtonsoft.Json。
- ! 生成的类带 partial 关键字,可在另一个文件里为同名 partial class 添加方法而不被重新生成覆盖。
常见问题
属性名为什么自动大写了?
C# 约定属性使用 PascalCase,工具把 user_name 转为 UserName,并通过序列化特性保留与 JSON 原键的映射,反序列化不受影响。
「仅类型」选项有什么用?
勾选后只输出类与属性定义,省略 using、命名空间样板与反序列化示例代码;不勾选则生成可直接运行的完整文件与解析方法。
枚举字段能自动生成 enum 吗?
单条样例无法确定全部取值时不会贸然生成枚举;贴入覆盖所有枚举值的多条样例(后续版本支持多样例输入)推断会更准确。